Add and configure Grunt and NPM

So, I think it's fun to help with other people's projects, so I'm injecting a little automation to yours. Unfortunately, something's messed up between PhantomJS and Grunt, so you'll have to double check me to make sure I'm not breaking something important.

-------------------------

This is a sizable diff, but there's not a ton going on. This 1) adds Grunt tasks for linting and minification, 2) lints and minifies the main JS file, and 3) wraps everything in an anonymous function to improve the efficiency of the minification process. I think I've caught and exported all of the global functions, but double-check me on it. Also, I couldn't add tests, but more on that later. Consider this somewhat of a draft. Provide feedback where needed and I will fix.

### 1. Grunt tasks
I added linting (jshint) and minification (uglifyjs) and add all modules to package.js. Note that I added a comment banner to the minified file, and I randomly selected the MIT license to add to the banner and set the version at 0.0.1 (both of those are controlled in package.json). I attempted to add qunit tests, but [this is happening](https://github.com/gruntjs/grunt-contrib-qunit/issues/26), so I skipped that for now. Plus, that would have added a ton of extra stuff to review. Probably best to split this up a bit. (We could do two PRs to a dev branch and merge both to master at once to avoid pushing to master with no tests? Your call.)

### 2, 3. Linted, wrapped
I linted the main file. Most of the linting issues were just changing ```==``` to ```===```.  I also wrapped everything in an anonymous function and exported the globals. Make sure I've caught all of the globals. Also, I'm assuming you have a much better system for testing this stuff out, so make sure that I haven't killed any functionality. Also, if you do have a fairly complete testing system, I can help work that into grunt if you like (whenever the PhantomJS issues are resolved, of course).

### README
I updated the README with Grunt setup info. I'm also a nitpicky jerk with OCD, so stripped the HTML out of the README.