Gruntified build/test process

Implemented a few grunt tasks and fixed a few small style issues to pass jshint validation.

For the casperjs task, I chose to use grunt-exec instead of grunt-casperjs. The grunt-casperjs task doesn't do much for you and it catches stdout so you aren't notified of test progress asynchronously - you have to wait for all of the tests to finish before you are notified of test progress.

To get up and running all you need to do (if you already have casperjs installed) is:
- `npm install`
- `grunt`

**Run down of the implemented grunt tasks**
```bash
# Default task - validates with jshint, minifies source and then runs unit tests
grunt

# Used during development - watch for changes to angularFire.js and runs default grunt task after each change
grunt watch

# Just run unit tests (does not uglify or run jshint)
grunt test

# Minify/Uglify source
grunt build
```