Split System.register into .register() and .registerModule().

'instantiate' -> .register()
'register' -> .registerModule()
This allows the two formats to evolve independently.

Add `require` argument in prep for sending relativeRequire via function arguments.
What do you recommend? Run the `FreeVariableChecker` and add the `require` only if it is used?