Move askari/schema/v0/type -> askari/type.
ReusableByteArrayInputStream lets you change a BAIS's buffer.

It also exposes internal members, because we're all grown-ups.
Revamp BytesType, add #encodeBytes & #decodeBytes.

These methods use `Data(In|Out)putStream` and
`ByteArray(In|Out)putStream` instead of `ByteBuffer`.
Revamp IntegerType adding #encodeI(8|16|32|64) & #decodeI(8|16|32|64).
Add ByteTupleType #encodeByteTuple and #decodeByteTuple.
Add ConstantType #encodeConstant and #decodeConstant.
Add BooleanType #encodeBool and #decodeBool.
Add RawType #encodeRaw and #decodeRaw.
Add FloatingPointType #encodeF(32|64) and #decodeF(32|64)
Revamped BytesType to use looping instead of lots of magic constants.

When encoding and decoding short strings, there are fast paths being used to avoid these.
Also added another size level. (~2 gigs)
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.
Add PackedType#getTypeIterator, a delegating circular iterator.

This way we can (fairly) painlessly encode and decode entire packed
instances piece-meal.
Add ReusableByteArrayInputStream#readByte.

It throws EOF as god intended.
Type#decodeBytes now returns ByteLists instead of taking out buffers.

ByteList is a jruby type that underlies the jruby string type.  It
offers an easy way to wrap sections of existing byte arrays with the
promise of exposing them as strings later.

These seem cheap enough to just construct and return, so long as we
aren't copying bytes (checked the source, it isn't.)
Start Type.encode & .decode for most types.

.encode_to_stream and .decode_from_streams take types directly now to
make recursion easier.