Optimize performance of Buffer#line_begins

Replace push/reverse with unshift. This is generally about 10 times
faster according to my simple benchmarks.
Merge pull request #42 from bbatsov/optimize-line-begins

Optimize performance of Buffer#line_begins
Add gem version badge
Fix rake test

Made `rake test` depend on `generate` and the default task invokes only
test now. A little convenience for people who're not used to set `test` as
the default task and would otherwise see an error.
Merge pull request #45 from bbatsov/raketest

Fix rake test
Improve efficiency of encoding detection in Source::Buffer

This fixes #39.
Merge pull request #44 from bbatsov/encoding

Improve efficiency of encoding detection in Source::Buffer
Extend the README a bit
Merge pull request #43 from bbatsov/readme

Readme improvements
- lexer.rl: fix lexing label at line_begin "foo:bar" (fixes #48).
Add contributing guidelines and changelog generation.
Add tests for 543e6e5.
Update README (closes #47).
+ lexer.rl: better location reporting for unterminated =begin (fixes #37).
+ lexer.rl: better location reporting for invalid unicode codepoints (fixes #38).
* Rename Parser::Source::Range#to_source to #source (refs #40).
* Rename Parser::AST::Node#source_map to #location, #src to #loc (closes #40).
Make Rakefile 1.8-compatible.
.jrubyrc is no longer required.
+ Add tokenizer, Parser::Base#tokenize (refs #46).