feat(Grunt) Switch from Rake to Grunt

Migrates the Angular project from Rake to Grunt.

### Benefits:
- Drops Ruby dependency
- Lowers barrier to entry for contributions from JavaScript ninjas
- Simplifies the Angular project setup and build process
- Adopts industry-standard tools specific to JavaScript projects
- Windows support for the build and end-to-end tests

### BREAKING CHANGE:
 Rake is completely replaced by Grunt. Below are the deprecated Rake tasks and their Grunt equivalents:

- rake --> grunt
- rake package --> grunt package
- rake init --> N/A
- rake clean --> grunt clean
- rake concat_scenario --> grunt build:scenario
- rake concat --> grunt build
- rake concat_scenario --> grunt build:scenario
- rake minify --> grunt minify
- rake version --> grunt write:version
- rake docs --> grunt docs
- rake webserver --> grunt webserver
- rake test --> grunt test
- rake test:unit --> grunt test:unit
- rake test:<jqlite|jquery|modules|e2e> --> grunt test:<jqlite|jquery|modules|end2end|e2e>
- rake test[Firefox+Safari] --> grunt test --in=[Firefox,Safari]
- rake test[Safari] --> grunt test --in=[Safari]
- rake autotest --> grunt autotest

### NOTES:
- For convenience grunt test:e2e starts a webserver for you, while grunt test:end2end doesn't.
Use grunt test:end2end if you already have the webserver running.
- Removes duplicate entry for Describe.js in the angularScenario section of angularFiles.js
- Updates docs/src/gen-docs.js to use #done intead of the deprecated #end
- Uses grunt-contrib-connect instead of lib/nodeserver (removed)
- Removes nodeserver.sh, travis now uses grunt webserver
- Built and minified files are identical to Rake's output, with the exception of one less
character for git revisions (using --short) and a couple minor whitespace differences

Closes #199