Add SQL::Scanner based on ragel

* This is a WIP, just trying to get the right layout and division of
  labour between the lexer and upcoming parser based on racc. This
  will obviously be expanded to include all the tokens in a SELECT
  query, as well as all the tokens in UPDATE, INSERT and DELETE.
Remove ruby file that will be generated by racc
Change ragel to use a scanner instead of a state machine

* This appears to be a better approach since the parsing won't be
  duplicated on the scanner and parser side of things. Ragel is now
  only responsible for tokenizing the input, and Racc will be used
  to parse the tokens.
Add SQL::Parser based on racc

* This is a preliminary grammar based on the sql 92 bnf defined at
  http://savage.net.au/SQL/sql-92.bnf.

  Oddly enough it also resembles the racc grammar at:
  https://github.com/omghax/sql/blob/master/lib/sql/parser.racc but
  was not derived from it.

  This scanner/parser combination can now parse simple SQL queries
  like: SELECT * FROM "people" but does not yet do anything
  interesting with the data. Eventually it will create a tree of
  SQL::AST::Node objects.
Remove explicit sql/parser require statement

* This should stay removed until the ragel build process can be
  automated on travis.
Add subquery support to FROM clauses
Add comment about rule naming conventions
Change buffer to be flushed after parsing is finished
Change SQL::Parser#parse to be a command method
Fix rules that do not reduce
Remove a qualifier until correlation tracking is supported
Add declaration to tell racc what rule to start with
Add actions to some parser rules to return ast nodes
Add more actions to the parser

* Fix literals to not have quotes in the sexp
Add SQL::Parser.parse convenience method
Fix parser to only parse the input once
Add semicolons to emit statements to be more consistent

* The purpose of the formatting is that this code should work
  with C, Java and Ruby code.
Add round-tripping for FROM and AS clauses
Refactor scanner to match full unsigned integers

* This allows the parser to focus on matching the whole number, not
  matching each digit and concatenating the strings, and evaluating
  them to get the number.
* Change the identifier emitter in the scanner to remove the leading
  and trailing quotes, as well as any embedded quotes.
Add scanner and parser compilation as a spec dependency