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.
> You should prefer to keep the tokens that are from the same level of the syntax-tree together.

That makes perfect sense.

```js
var with =
    'all the ands. longer longere lo This is a pretend 80 char limited string';

var somethingElse = 'goes here now?';
```

So, to confirm, string assignments that are 80+ chars are isolated declarations?

I do like how it looks, but it would be confusing to explain the rules for that to contributors, and unlikely for them to detect that on their own.

How about preferring multiple variable statements (which is what I always do personally)?

```js
var hey = 'what';
var is = 'up';
var with =
    'all the ands. longer longere lo This is a pretend 80 char limited ' +
    ' it is the most pretend thing ive seen in my life.';
var somethingElse = 'goes here now?';
```

My usual reasons to prefer this are mostly browser related -- being able to set a breakpoint between variable declarations. Additionally, multiple variable declarations like this allow for easier re-arrangement of lines, without having to worry about getting the reindenting + comma combination correct.