Improve Gruntfile

1. Standardize formatting of arrays and objects
    - Fixes formatting inconsistencies in the Gruntfile. Now arrays and objects
    are:
    single_space: after_colon,
    One value: [single_line],
    Multiple values: [
      multiple,
      lines
    ]

2. Use load-grunt-tasks to... load grunt tasks!
    - Sindre wrote a nice plugin that is used widely in the Yeoman and Grunt
    communities to load tasks in a cleaner fashion than matchdep.
    - Moves loading tasks to the top near our other require statements.
    - Since we're asking users to run `npm install` there should be no need to check
    if a package is installed or not. If the project is installed as a dependency
    all of the required packages will be installed as well.

3. Fix config-all.json formatting
    - Running `grunt test` reformats the config-all file, leaving your working
    directory dirty. Committing the reformatted file so that running a test task
    doesn't impact the repo at all :).

4. Move jshint before build
    - It's convention to jshint source files before you build, so that if there are
    glaring jshint errors your build won't complete.

5. Rename clean targets to be more descriptive

6. Revise the readme to ask people to run all tests (jshint, qunit, and nodeunit)