Extract ruby modules for Aaskari types.

There is an inherent circularity between NamedType, PackedType and
Type, which the absence of a linker allows me to ignore.  It's marked
with a TODO, and I'll return to it before merging.
Askari::Type#[] returns BaseTypes now, not java objects.

This is the heart of the refactoring.  From here we will be able to
hide the java implementations within ruby object constructors, perhaps
decompose the parsing process and drop `Type.encode_to_stream` and
`.decode_from_stream` in favor of polymorphic dispatch.

Push references to Java::AskariTypes down into ruby definitions.

Push parsing code down into ruby types.

We can fold the branches of conditionals in `Type.encode_to_stream`
and `Type.decode_from_stream`.

Ruby type objects receive #encode_to_stream and #decode_from_stream.
They are no longer passed as the initial parameter.
Move the boolean specs.
It seems we can dispense with the circularity.
Move types from the `Type` module to `Types`.

Move `Type.types` to `BaseType.parse`.

Drop Type.encode and .decode in favor of BaseType#encode and #decode.
Remove the classes dir on clean and appease the caneocop.