Provide standalone converter for 30kmoviesdata.nt
Add parser generation definition
Generate code for parser

G2 code generation used after benchmarking.

style	benchmark           old ns/op     new ns/op     delta
T0		BenchmarkParser     672           5631          +737.95%
T1		BenchmarkParser     672           5579          +730.21%
G0		BenchmarkParser     672           4049          +502.53%
G1		BenchmarkParser     672           3868          +475.60%
G2		BenchmarkParser     672           3543          +427.23%

F0 and F1 create massive Go source (6.0M) and so were not tested.

Invalid tests removed, additional tests for invalid input to be added
later.
Use more sane quadfix rules
Fix unicode handling and add tests

We now also return an incomplete triple to aid in debugging - non-nil
error means that this is not usable except for manual examination.
Handle comments in N-Quad documents and REPL

The parser rejects an N-Quad with a comment, so we filter those out
ahead of time. This simplifies the grammar and code generated by the
parser.
Cleanup unused vars, move unEscape and add tests
Generate parser code

ragel -Z -G2 parse.rl

ragel version 6.8 (as previously)
Run quadfix on 30kmovies.nt.gz and replace
Replace nt with nq in various places throughout

Manually change testdata.nt to testdata.nq.
Add doc comments for nquads
Fix missed case in quadfix... and re-run

Checked with MQL query successfully:

[{
  "<type>": "</film/film>",
  "<name>": null,
  "</film/film/directed_by>": {
    "<name>": "\"David Fincher\""
  },
  "</film/film/starring>": [{
    "</film/performance/actor>": {
      "<name>": null
    }
  }]
}]
Add RDF test suite testing and fix grammar errors
Generate parser code

ragel -Z -G2 parse.rl

ragel version 6.8 (as previously)
Fix documentation error
Actually perform the N-Quads test
Specify the limitations of quad/triple parsing
Create quads hierarchy

* Move nquads into quad.
* Create cquads simplified parser in quad.
* Move Triple (renamed Quad) to quad.

Also made sure mongo actually implements BulkLoader.
Temporarily use cquads only

I intend to make this configurable, but there is tight connection
between db.Load and db.Open that is getting in the way of that.

Testing on data set 30kmoviedata.cq.gz created by doing:

zcat 30kmoviedata.nq.gz | sed 's/[<>]//g' | gzip -c > 30kmoviedata.cq.gz

The following query is successful:

[{
  "type": "/film/film",
  "name": null,
  "/film/film/directed_by": {
    "name": "David Fincher"
  },
  "/film/film/starring": [{
    "/film/performance/actor": {
      "name": null
    }
  }]
}]

TODO: fix up naming for quads and make strict parsing an option.
fix non-pointer uintptr -> uint64, export NextUID

Allows other iterator implementations to use global UID namespace.