Move the askari type exceptions to `base_type`, refine them a little.

They're still in the `Askari::Type` module and requiring `askari/type`
still makes them visible.  By moving them we can use the new
`DecodingError` in `BaseType` while avoiding a circularity.

`ConstantType` catches the java-layer `DecodedWrongValueException` and
rethrows as a (ruby) `DecodedWrongConstantError`.  This brings the one
java type exception under the same hierarchy.

Being able to catch `DecodingError` is a convenient, single way to vet
a set of cells for well-formedness.