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'm happy to tighten or loosen any of these rules and go back over the code.
Just how the cool kids do it these days.