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
@mdevils I like the explicit nature of this, but the `actualTokenBefore` could be deduced within `TokenAssert` if `TokenAssert` had access to the file object. This can be achieved by passing it into the `TokenAssert` constructor here: https://github.com/jscs-dev/node-jscs/pull/751/files#diff-11c8ed6891535db0efdc438909405929R22.

This idea would make this particular assertion cleaner. Perhaps it may also help other assertions in the future?