Webapp

This splits the app into two separate components - a simple skeleton of shared dependencies and a minimal UI, and the application that is loaded dynamically using basket.js

The goal is to have a more flexible offline environment than what is provided by appcache, including one that will work and automatically update the app in Cordova, CEF, and other packaged environments.