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