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.
Well, I prefer the `nofunc` variation (see http://www.jshint.com/docs/options/#latedef). This allows functions to be excluded from this rule, as function declaration definitions are hoisted, defining them after they're being used is often an acceptable style choice. As an example, `nofunc` allows this, while `true` wouldn't:

```js
document.body.innerHTML = 'Hey, ' + getName();

function getName() {
  return localStorage.getItem('name');
}
```