Phs/unify error hierarchy

`Askari::Error` is the root of an exception hierarchy. Also, `Type::Error` is no longer a validation error; that was always a hack.  Now `Validation#validate!` catches type errors and re-raises them as validation errors, which is probably what it should have done to start with.

`Askari::Client::Error` expressed errors in finding or using clients. It can act as a catch-all for coprocessors that wish to forward them back to users via an `on_error` block.