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.