Moved build system to Grunt(0.4.0)

Moved the build system to Grunt so that the build system is the same language as the code. I was able to integrate the test suite and uglify.

Problems:
* The version number in the package.json has to be one version ahead of what is on NPM otherwise it causes a circular dependency.
* Using jshint threw a few problems after suppressing stylistic things
  * `a == 0` on line 857. I know why this is being done but jshint doesn't let you turn it off
  * `return bound = function() {` on line 588. Again, no jshint option.

I was able to resolve both of these but I wanted to get some feedback on possible resolutions before I did them.