Automation and Bower Integration

This adds automation elements through Grunt, with stubs for various tasks, and initial tests in QUnit. This also uses Bower to resolve front-end dependencies (bower.json), and moves them out of the npm dependencies (package.json).