Update npm and config karma for environments

This change updates some NPM package versions, adds a couple of packages, and adds configuration to better integrate Grunt and Karma for different testing environments.

Adds Grunt tasks karma:unit and karma:debug, and karma:dist. karma:unit and karma:debug both run tests against the src version of the files. karma:unit runs the suite once in the background, while karma:debug runs the test suite repeatedly in a browser. karma:dist runs the tests against the concatenated files.

Also adds karma:unit and karma:dist to the appropriate stages of the default grunt task.