Use BlockEnvironment#call_under for running class / module bodies

This makes fixing default visibility issues for methods defined on
blocks easier, because it creates a single path for module_eval and
regular class bodies, all going through call_under.
Extract fixup logic into separate method

This wasn't working properly for the new class initialization strategy,
so extract the method attaching something to a specific instance from
fixing up the chain.
Use push_type over push_rubinius && find_const :Type

We have a specific instruction for pushing Type, so we might as well use
it here.