DO NOT MERGE: New file structure

Things still left to do: fix Jakefile to use `browserify` as a build step
this allows use of `require('engine') when calling `browserify` and also switching engines easily.