Rework static file pipeline (Again)

This should hopefully be the last time we need to do this. This refactors the asset pipeline to be centered around [Grunt](http://gruntjs.com/). Wake was broken in a few ways and this was making iteration harder than it needed to be. The files output by this pipeline are deterministic, so running it multiple times will return the same output.

The new method supports single time compile by running ``grunt`` or watching all the files for changing and compiling when needed by running ``grunt watch``.

This change also includes a de-duplication of the location of the static file directory, and the base path for static urls.