Grunt refactor and linting

Introduced grunt and some plugins to replace the existing cakefile.

Now using a require.js task instead of a custom building file.  Moved
most of the Cakefile logic into the lib/build/index.coffee file and
converted it to custom grunt tasks.

Added verification of built data files.

Added masthead with version and license information to each built file.

Added coffeelint and jshint2 for linting lib files.