WIP: Parsing infastructure

Not ready for review yet, but follow along and comment if interested.

Notable features:
  * Parser are generated with ragel (specifically, [my fork of ragel](https://github.com/dcjones/ragel)).
  * `ragel.jl` defines some types and macros to factor out the tricky parts: which is mainly parsing a buffered stream as a opposed to reading everything into memory before parsing, which we obviously want to avoid.
  * Regular files are memory mapped by default. Potentially that can lead to speed up in some cases, but I need to do some benchmarking to see.

You can see the example FASTA parser I have in `fasta.rl`. It's pretty simple to define once you wrap your head around ragel, and pretty fast (about 9 seconds to parse the human genome from a fasta file with 40% cpu utilization, indicating that it's mostly I/O bound). All it does now is print all the sequence identifiers it finds, so it's not yet useful.

Next up:
  1. [ ] Define some sequence types. (In a separate branch/PR)
  2. [ ] Make the fasta parser actually fully functional.
  3. [ ] Revaluate the design to see if there's anything else that can be factored out into macros, etc.
  4. [ ] More parsers!
  5. [ ] Document how to build parsers.