Refactor build system

OK, this is a huge commit. I have it broken down into smaller commits if that
would fit with the VC strategy better.

NOTE: This revises the API and breaks testing with the Gruntfile right now. Will
fix and squash commits, but want to get feedback first.

- The node module no longer writes directly to the file system, but instead
  exposes an output string in a callback. The new CLI outputs a file.
- Moves Grunt to a dev dependency and builds a custom Modernizr file
  in memory, without writing interstital steps to disk. This is safer, lighter,
  and gets rid of Grunt inception.
- All build system code is in lib/, and used node.js/common.js style module
  loading.
- All Modernizr code is in feature-detects/ and src/, and uses require.js style
  module loading.
- All files used only by tests are moved to test/
- Impliment a real CLI using npm's bin param.
- Adds consistant code comments.
- Revises and adds new docs to readme.md:
  - Adds usage docs
  - Removes cruft docs for other repositories
  - Adds contributing docs, moves test section inside of it

- Minor optimizations:
  - Switch build system to native V8 functions where possible
  - Improve r.js settings
  - Name exported functions to givenicer stack traces in case of error
  - Normalize code syntax and spacing
  - Renames files for maximum pattern following
  - Cleans up .gitignore
  - Fixes .editorconfig for markdown
  - Removes `test/` from conig-all.json. Doesn't have meaning for users /
    consumers anyways since it's a pretend directory we fake with r.js.
Revise the gruntfile to work with new build system

- No tasks use grunt watch, no docs mention it, so remove it
- Remove unneeded clean targets
- Remove unused meta config object
- Make jshint test test/api
- Refine jshint to work with tests and lib, remove uneeded config
  - curly: all of Modernizr's code uses {}, not needed
  - evil: No eval statements in Modernizr's source, not needed
  - laxcomma: Only existed in unit-caniuse.js, so fixed there and removed.
  - newcap: No class based issues in Modernizr, not needed.
  - smarttabs: Editorconfig enforces indent_style = space, so this rule is
    contrary to our other code normalization tool. Removed.
- Remove jshint node: true comments in lib and test because we're defining that
  in the gruntfile. NOTE: there are still a few files with jshint error
  suppression comments in them.
Improve test coverage for new build system