Speed up lexer considerably

Lexer now uses strscan, and is now orders of magnitude faster. TODO:
add benchmarks.

Also, use new version of minitest, and get ruby-1.8.7 working.
Ruby 1.8.7 still fails some tests and does some weird things and is NOT
yet fully supported, but at least most of the tests pass now :)