Autofixing: assertions

I attempted to start work on autofixing.

The main idea is to implement autofixing with least pain/overhead as it is possible. This is the very start of the work.

My plan:

- [x] 1. Asssertions in `Errors` object. Collecting use-cases for the assertions (which can be used for further autofixing) and implementing them. The assertions API must be as generic as possible (to be able to implement further autofixing in different ways).
- [x] 2. Integrate assertions into the rules (instead of `errors.add()`). I realize that is will not cover 100% of the cases, but it is OK for now.
- [ ] 3. Cover assertions with tests.
- [ ] 4. Merge this to JSCS code to allow people use better assertions.
- [ ] 5. Implement autofixing based on the assertions (join tokens on specified assertions). Introduce CLI option.
- [ ] 6. Cover autofixing with tests.

@mikesherov, @markelog, @mrjoelkemp, I need your attention, guys!

Relates to #516
Not a blocker for this PR, but out of curiosity, should this instead be `getTokenByRangeStart`? We're returning a token object, not a numerical position. If this should be changed (for clarity), I can open an issue.