Introduction of DM

DM currently validates user input, but does not currently save any
assets, or present anything in the UI.
Outputting assets to preview
Anal formatting
Changed to new BE save and load interfaces
Trivial code tidying
Split up web.js into web.js and validators.js