[NOMERGE] Deserializer optimisation

The current deserializer maxes out at about 50k records per second on my machine. This is an attempt to see if a PEG.js based parser is faster.

**update** PEG.js is faster for large documents, but much slower for smaller documents. I've written a new deserializer with performance in mind, it seems to comfortably beat the other two options:

```
✓ should parse individual records quickly 
  Done in 0.023s,  43478.261 documents / sec 4.603  Mb / sec
✓ should parse individual records quickly, using PEG (63ms)
  PEG Done in 0.063s,  15873.016 documents / sec 1.680  Mb / sec
✓ should parse individual records quickly, using the new deserializer 
  New Deserializer Done in 0.008s,  125000.000 documents / sec 13.232  Mb / sec
✓ should parse large nested records quickly (4246ms)
  Done in 4.246s,  23.552 documents / sec 1.639  Mb / sec
✓ should parse large nested records quickly, using PEG (1071ms)
  PEG Done in 1.071s,  93.371 documents / sec 6.496  Mb / sec
✓ should parse large nested records quickly, using the new deserializer (309ms)
  New Deserializer Done in 0.309s,  323.625 documents / sec 22.515  Mb / sec

```