Replace handwritten lexer with a Ragel-generated one

Yay, it's finally done!

The lexer should be complete and handle all valid 1.9 syntax. It will immediately fix a bunch of open issues: #20, #96, #98, #100, #102, #105, #106 and #108.

The resulting codebase fails five tests, but as you seem to be quite fond of names such as `"no2"` and `test_wtf_8`, I've no idea how (of if) to fix these and I'll just leave this to you.

Feel free to screw with my code, but note that in this current form, it's almost completely diff-compatible with what I have in [parser](http://github.com/whitequark/parser). As long as it remains so, it'll be easy for me to submit pull requests for any bugs found or features implemented (though both cases are quite unlikely at this point).

Speed:
```
$ ./bin/benchmark lib/parser/lexer.rb
                 user     system      total        real
ruby_parser  6.450000   0.070000   6.520000 (  6.523504)
parser       2.410000   0.000000   2.410000 (  2.414168)
```

Note that this is with `parser` gem which indeed parses all 1.8 syntax but in this benchmark it did not track line numbers. That's unlikely to affect the results much, though.