Fix a bug with qualifier inference in decoding.

If one qualifier was a prefix of another (such as with qualifier types
`v` and `value`), it was possible for the longer qualifier to be
mistaken for the shorter one.

Fix it by first adding
`ReusableByteArrayInputStream#setBuffer(byte [], int, int)`, which
restricts the input stream to a given offset and length of the given
byte array.

Secondly, `Type#decode` can take a length in addition to an offset.
After parsing, if the input stream is not exhausted, an exception is
raised.  Raw types, being unframed, are exempt.
Merge pull request #77 from seomoz/phs/fix-qualifier-decoding

Fix a bug with qualifier inference in decoding.