New: Add key-spacing rule (fixes #1280)

I had a couple questions about this in [#1280 (comment)](https://github.com/eslint/eslint/issues/1280#issuecomment-57680914), but I went ahead with what I already had and can change it based on feedback:

- On by default, no space between key and colon, one space between colon and value
- Options are in order for after key and before value, with possible values being `"always"` or `"never"`.

Adds a new method, `getTokensBetween`, to the tokens API. I believe this can be used in a couple other rules, so if this gets merged, I'll look for other rules that implement the same thing and switch them to use the new method.

This does not include the idea brought up by @lo1tuma in [#1280 (comment)](https://github.com/eslint/eslint/issues/1280#issuecomment-57683287), which would add additional options for vertically aligning multiple properties. I'm totally amenable to adding that to this PR if that's desirable.

There were changes to `Makefile.js`, `lib/rules/no-trailing-spaces.js`, `tests/lib/eslint.js`, and `tests/lib/rules/vars-on-top.js` required whitespace changes because this is on by default. If that's the wrong choice, I'll revert those changes.