Promote encode/decode methods to Type interface.

AbstractType provides default impls throwing
UnsupportedOperationException.
Jiggle names, coalesce encode decode signatures.

The askari type names are no longer embedded in method sigs, instead
the equivalent java types are.  Now the details of encoding (say) a
byte sequence are hidden by the implementing type.
Prove AbstractType throws UnsupportedOperationException for all.
FloatingPointType checks its width and throws Unsupported on mismatch.
IntegerType checks its width and throws Unsupported on mismatch.
NamedType delegates encode and decode methods.