add editorconfig & jshint.

I know these crazy change sets aren't fun. Sorry :(

This PR introduces [editorconfig](http://editorconfig.org) and [JSHint](http://jshint.com). The configuration files are at root level, then I went through and ran it against the code, which is how we got to the huge diff. There are some things I'm not crazy about; mainly the 80 character limit. There are a few cases in here where splitting into a new line just makes things ugly.

I hate to even say this, being that the diff is so huge, but this is still just an initial "sweep." There are other code-style things that I think can still be addressed.

Please take a look. You'll notice lots of new lines, semi-colons, variable renaming, variable declaring, `use strict` atop every file, and other small things. I'm happy to tighten or loosen any of these rules and go back over the code.
I think we don't need browser, it exposes globals like `document`.