Add transparent input decompression

This supports gzip and bzip2 by magic number determination.

Trailing whitespace differences in documentation due to opinionated
editor.
Add tests for decompressor
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.
Merge pull request #71 from kortschak/compress

Add transparent input decompression
Switch to the latest mgo path.

This is not only the right thing to do, as per the documentation of the
latest release (yesterday) but it should now be backed by git and not
bzr, which is a big plus and won't break our build so much.
Merge pull request #76 from barakmich/master

Switch to the latest mgo path.
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
fix non-pointer uintptr -> uint64, export NextUID

Allows other iterator implementations to use global UID namespace.
Merge pull request #85 from pbnjay/global_uids

fix non-pointer uintptr -> uint64, export NextUID