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 & wrapped Karma config in an `exports` block to reflect updated configuration and defaults for those tools
* Renamed test.conf.js to karma.conf.js, for consistency with other Angular projects
* 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. My goal was to get the basic Grunt infrastructure in place quickly.