chore: Add Gruntfile and fix JSHint errors in source and spec

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, although the Karma
tasks have been simplified in the interest of getting Grunt up and running now.