Use error returns and interface type for parsing

Fixes issue #72

This change simplifies interactions with parsing N-Quads and makes
reading datasets more robust. Changes made while here also improve
performance:

benchmark           old ns/op     new ns/op     delta
BenchmarkParser     1058          667           -36.96%

We still use string concatenation which I'm not wildly happy about, but
I think this can be left for a later change.

Initial changes towards idiomatic error handling have been made. More
significant changes are needed, but these have subtle design implication
and need to be thought about more.

30kmoviesdata.nt.gz has been altered to properly escape double quotes.
This was done mechanically and with manual curation to pick up
straglers.
Add package prefix to errors
Merge branch 'master' into parse

Conflicts:
	db/load.go
Merge pull request #75 from kortschak/parse

Use error returns and interface type for parsing
Use build constraints for appengine
Merge pull request #77 from kortschak/appengine

Use build constraints for appengine