Add JSHint "lint" task to Gruntfile.js and run it when `npm test` is run.

Adds Grunt task `lint` and fixes all JSHint errors currently in code.

The `lint` task is run in `npm test`, before all other (A+ promises unit test and `grunt test`) tests because it should take the shortest amount of time - a early fail, sort of.