Do tagger copying with less iteration

This makes minimal difference to the benchmarks in cayley_test.go (a
variable ±5% on the bigger cases).
Fix error in REPL term shutdown leaving tty unsane

Previously we did not close the liner term unless a SIGINT or SIGKILL
was received. This left the terminal in raw. Fix that.
Quieten go vet in mongo
Merge pull request #131 from kortschak/tagger

Do tagger copying with less iteration
Merge pull request #132 from kortschak/repl

Fix error in REPL term shutdown leaving tty unsane
Merge pull request #135 from kortschak/mongo

Quieten go vet in mongo
Move flag handling out of config into main

This places all the flag definitions together, making them easier to
find, and makes it possible (in the future) to use db for convenience
functions when we have a Go API, without having flag space contaminated
by cayley main flags.
Clean up usage

* Use raw strings.
* Hook usage into flag.
* Print banner to stderr as flag.PrintDefaults does.
* Use the cayley usage rather than the flag ussage when command is
  unknown.
* Simplify args handling.
Make usage cayley intro banner contextual

Only provide it when people run cayley without any other args.
Fix IRIRef defintions

Literal `"` is not allowed in an IRIRef. Fix this.
Generate parser and add tests

ragel -Z -G2 parse.rl

ragel version 6.8
Merge pull request #141 from kortschak/parse

Fix parser acceptance of `"` literal in IRIRef
Merge pull request #138 from kortschak/usage

Clean up usage
Merge kortschak/config (hand-conflict)
Merge branch 'master' into boltdb