Modified core module loader to be more lazy load.

Instead of always loading all modules and running the component from the selected view, an inner require is called on a specific module request so only the relavent module is loaded for that page.

The biggest reason I did this is the slowest (and most taxing) module load is the game module, which isn't needed on any page but the game page. Since `socketio` is loaded from the game server instead of the client, it has more network overhead and slows the JS load of all pages.

@young-steveo Please review and merge if you agree.