Added package com.silverdirk.userp
Added the type system, and definitions for all the predefined types
Added ByteSequence, an implementation using a R/B Tree, a 'Sliding' variant that pulls bytes form an input stream, and some test cases for them
Got rid of value-enums, though they will reappear as a new basic type called ValEnumType.java
Implemented a decode method in RangeType, overridden with an optimized version for the needs of that range
Added a 'decode' method to UnionType, overridden with an optimized version for the needs of that union
Improved the behavior and error handling of seek and forceSkip, and fixed a few R/B bugs I introduced in the last patch
Finished (mostly) implementing the protocol reader
Everything is implemented except inspecting the metadata
Most of everything is somewhat debugged
Updated the header comments
Added the test cases for Ranges, Unions, Tuples, Whole, CommonTypes and a test suite for the package
Modified the way INDEFINITE tuple encoding is done, slightly, to save a byte per element
Fixed a bug in reading BigInts (type TInt)
Fixed my Util.getBitLength() by throwing it out and using the awesome implementation I saw on the Bithacks page
Added CommonTypes test cases for types TInt, TBool, TFloat{32,64} and TStrUTF{8,16}
Added a test for indefinite tuple encoding
Added project file
Replaced SlidingByteSequence and friends with BufferChainIStream
Updated the test cases to match replacement of ByteSequence et. al. with BufferChainIStream
Heavy renovation of type system and stream classes
Encoding/decoding of data is mostly tested
Serialization of the types themselves needs work
Metadata is unimplemented...
Heavy refactoring of Codec/CodecDescriptor
Also lots of fixes and updates to UserpReader/writer
Updated the test cases, and serialization of type definitions is getting close