chore: Update config files for compatibility with latest Karma/Bower

Karma now throws an error when encountering JASMINE or when the
karma.conf.js file does not return a value using `module.exports`

Bower has changed their package install directory to be /bower_components
chore: Add Gruntfile, update Karma configuration & fix JSHint errors

Leveraging Grunt to check for style issues and run the Karma tests makes it
easier to run those processes. The Gruntfile in use here is based on that of
ui-utils, and the Karma config file (which has been renamed Karma.conf.js for
consistency with other projects) has been re-generated with karma init.
chore: Update Travis configuration to run Karma through Grunt

Running Grunt from within Travis allows us to lint the code in addition to
firing off the standard suite of unit tests.
chore: Remove watch alias in favor of standard grunt-karma syntax

The README for grunt-karma recommends executing watch tasks in a single Grunt
command using the form `$ grunt karma:server watch`. I am removing the
`watch:karma` alias in favor of this more explicit invokation to prevent
confusion with an (implied but nonexistent) "karma" target for the watch task.
To further clarify what's happening during watch, the watch task's settings
have been moved into a "test" task target.
Merge pull request #81 from kadamwhite/tooling-upgrades

Add a Gruntfile & update Karma configuration