Feature/new interface integration part5

* Changes editExperiment form to use angular.js to eliminates the large amount of javascript code needed to sync the javascript model of the experiment with the display of the experiment.
* Adds hooks to editExperiment for accepting template data and submitting to the backend
* Adds some basic validation to editExperiment (track weights must be integers)
* Has track weights hidden when uniformRandom option is selected
* Has editExperiment form compatible with experiment creation by way of the template variable `create`
* Improves comparison of experiment to original for determining whether or not unsaved changes have been made