Define library with UMD and test built file

Extend build process to create an ignored "test" file that can be loaded
in various test environments.
Configure Grunt tasks in separate files
Move JSHint configuration to separate files

Declaring JSHint configuration in standalone `.jshintrc` files allows
text editors with support for the linter to apply the rules in real
time.