Clean up the JS watch task and add a few more.

Linting before rebuilding JS can be kind of a drag, since if the linting
fails it won't rebuild the JS, and things like console.log statements will
make linting fail.
This basically makes using grunt watch for interactive debugging impossible

So, I've separated check into a separate step from lint.

If you want to watch everything, you can continue to use grunt watch.
If you only want to rebuild JS, you can use grunt watch:js.

I also added a css task, so if you can automatically rebuild sass using
grunt watch:css
Merge pull request #1614 from maurizi/remove-lint-from-watch

Clean up the JS watch task and add a few more.