Fix incorrect syntax of defrecord test.
Rewrite of forward/backward token functionality.

The previous incarnation of this is quite slow and very hard to follow. In this commit
I am trying to see how concise I can make the forward- and backward-token functions.
Remove unused rules & warehoused code.

Also, broke up 80+ lines.
Remove logic to emit ';' after a hanging comma.
Remove unnecessary regexps.
Rearrange code a bit.
Make sure comments are handled correctly when pressing return.
Merge pull request #81 from elixir-lang/whitespace-indentation

Rewrite token emitting functions