Ensure that the global module object is correctly initialized with module.exports
Get rid of remaining method code too large errors
Fix bitshift specs for compiled mode
Compiled mode wasn't coercing number literals like "1.0" to "1"
Remove static module provider cache and move to require().

This has a couple of effects. Since we create a new require() object
when a new GlobalObject is created, the now non-static cache is a fresh
new one. This allows for cyclic dependency caching, but doesn't put a
big ugly code smell there in the way of a global static thing. It also
cleans up some of the require/module provider interactions making things
a little easier to follow.
Allow instanceof operator to work on Java objects in interp mode
Integration test for instanceof java compatibility