Add a Gruntfile & update Karma configuration

I've added a Gruntfile with tasks configured to run JSHint (using the [settings from ui-utils](https://github.com/angular-ui/ui-utils/blob/master/gruntFile.js#L104-L115)) and to run Karma specs in a PhantomJS instance. This will make it easier for developers to get up and running with the tests (simpler syntax than invoking Karma directly & more consistency with Angular itself), and should also make it easier to run JSHint to keep style drift to a minimum.

Changes:

* Changed `components` to `bower_components` in .gitignore
* Renamed test.conf.js to karma.conf.js for consistency with other Angular projects, and regenerated Karma config using the latest `karma init` template (adds an `exports` wrapper function)
* Added a Gruntfile to run JSHint (using ui-utils settings) and to run specs with Karma
* Fixed a handful of JSHint errors turned up by running Grunt

I used PhantomJS as the default for Karma instead of Chrome in order to have the "watch" task be less disruptive to the developer. To run tests on grunt watch, use `grunt watch:karma` to start a background Karma server; Running Grunt without any parameters will run tests in both PhantomJS and Firefox, à la the old Travis configuration.