Update to Grunt 0.4.x and move node_modules out of git

In the root directory of this project, do the following to get Grunt
0.4.x and install local dependencies:

  npm install -g grunt-cli
  npm install
Update instructions for running the project
Start reworking the tests to check which callback is called
Start reworking tests to use promises

Jasmine's crazy asynch testing doesn't allow any abstraction, and it's
just unusable at scale. Switch to promises so we can regain sanity.
Rewrite specs using promises.

Sanity restored! Tests do what they should correctly.
Fix bug in JSONP not called error handler on error
Remove cruft from specs directory
Pull in JsHint

If a file doesn't parse Jasmine won't complain -- it just silently
ignores this problem and the tests seem fine. Hence we run JsHint on the
tests first to make sure they at least will parse ok.
Fix some JsHint issues in the specs
Bump minor version number for new release
Release 1.2.2