Add grunt along with jshint. Start with strict mode setup.
Fix messed up semi-colons leading to global variables.
Define globals used for testing.

I'd like to revisit this to minimize the use of globals in tests, or find a
simple way to only have these globals apply for all the test files.
Standardize quotes to single quotes.
Fixup missing semicolons.
Fix indentation to adhere to jshint's standards.
Fix out of order variable/function definition warnings from jshint.

With the way things were coded, these shouldn't have actually caused any
issues, but I'm in the mood to give into jshint.
Add radix parameter to all parseInts.
Standardize on dot notation for object access.
Standardize on stronger equality checks.
Get rid of unused variables.
Fix camel case variable.
Remove old jshint var (es5) and turn camelcase checks off.
Fix the few last jshint warnings.
Get tests running again.
Temporary workaround for weird race condition bug.