gstr: Added parse methods to convert raw pointers to slices
Reformed quark and error

Error now implements std::error::Error.
The traits, types, and methods for matching errors to domain enums have
been changed somewhat. Each generated error enum gets an inherent method
`from_error` taking `Error` and returning `Match` (formerly `ErrorMatch`).

The `quark` module gets support for globally cached quark values.
`Quark` is now a first-class type because its safe usage requires
safety of the value construction.