Major cleanup

This branch does some major cleanup. Most importantly, with grunt watch, it only runs the tasks that it needs to, rather than everything.