Feature/jsfmt

Addresses #375.

I'm using my fork of [grunt-jsfmt](https://github.com/ysimonson/grunt-jsfmt). The only difference between it and the [original version](https://github.com/james2doyle/grunt-jsfmt) is that it uses the latest version of jsfmt. I'll make a PR for that project to try to fold that in.

Even with the latest version of jsfmt though, grunt-jsfmt was producing syntactically invalid javascript for mithril.js - somehow mithril's if/else statements were throwing it off. However, running jsfmt directly against mithril.js created an initial syntactically valid reformatting, and subsequent uses of grunt-jsfmt appear to work. This may be something to watch out for though.