Js decoupling

This is groundwork started by @jamesgorrie . The change splits the application from a monolithic file (good for caching and network utilisation) into three javascript resources: 
 1. 'core', a shareable collection of modules that can be used by any of the frontend js applications.
 2. 'app', the general client-side application.
 3. 'go', a small entry point that dynamically requires 'core' and 'app'.

It is hoped that critical modules like commercial and analytics can now be moved from 'app' to separate modules that may rely on 'go' and can be executed in a safe context. 

  
Yes. But I took out the `redefine` to keep things simple. The source maps for the app and the core modules are not affected, so I felt like it would be best to sacrifice the source map for go.js. It's 10 lines.