Redo parser using `rust-peg`
Created by: skylerberg
This adds a new parser that uses a parser generator library. Moving off of my custom parser is a huge step in the right direction.
This new implementation is really messy. My goal was to get to feature parity with the previous implementation and add enough tests to be able to refactor.
The next steps are to refactor the grammar, make ion not crash on parse errors, then start extending the grammar.