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. 

  
It was an error and a merge issue, I was originally intending to minify all of `vendor` and `components`; at one point those folders did not have `curl` or `zxcvbn`...