Above mentioned "closures" are in reality just methods (do_oop_nv()) wrapped into the Closure abstraction.
This confuses readers, and adds lots of boiler plate code (closure definition and instantiations) in the process.
Also for whatever reason, G1ParScanHeapEvacClosure is part of the specializations for oop_oop_iterate() (probably because of the confusion).
Move them to G1ParScanThreadState which is the only place where they are referenced as methods.
This also allows small optimizations.