setup a grunt jenkins task which runs jshint

The major changes here:
* Setup a Gruntfile.js and .jshintrc which can successfully run jshint against the existing codebase
* Add vagrant code to install all grunt dependencies on the jenkins server so this can be done during a build
* Fix all JS code problems causing jshint errors (i.e. fixes #105)

What you'll see while you're testing this:
* If you have grunt installed globally, you should be able to successfully run it from ./util/grunt now, and it should lint 8 files and give no errors
* Jenkins will *not* yet run grunt on this code under test, because NPM etc have to be installed on the jenkins server and then i have to reconfigure existing jobs, all of which i'll do only after the pull is approved