refactor(jshint): reduce duplication & test all JS files

It currently fails due to the bug fixed in https://github.com/jshint/jshint/pull/1684; jsHint verions with the fix wasn't released yet.

Still, putting it up for discussion. I'm not sure if we need such a huge definition in Gruntfile, jsHint can handle multiple `.jshintrc` files on its own.

Moreover:

1. We could utilize `extend` property and define all the rules in one file only; the rest would only define if we're in Node or browser context and would export proper globals.
2. We should probably move some files around; some `global` sections are pretty huge because they come from multiple files. It's very hard to maintain such a situation.