Add Grunt and JSHint linting

This should be ready.  JS cleanup will be handled in a separate branch