Simplified the configuration stuff. There's now a new method in config.js, that simplifies attaching sub-modules to modules.

config.js still requires a shim, but I've rewritten it to be a define() call. Currently, it is being loaded into the global scope when engine.js runs. Not ideal,
 needs to be fixed soon. Rewrote all the modules to use the new system. It is significantly simpler to write a new module, thanks to the new config.attach() method.

Config will probably need a little more streamlining, and we definitely need to move it away from needing a shim, but it's starting to shape up a lot better.