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)