java.nio.ByteBuffer based thaw'ing

Just sending a PR for the record and to start a discussion.

So it appears it is indeed more performant, I see something around ~15-20% increase. 

The big problem I see is backward compatibility since I had to drop read/writeUTF  since it's not supported by bytebuffers by default. 
There could be a way to work around that by creating baInputstream instances just for string decoding where you used to use them, but I didn't choose to go this route since it was an experiment at this point and went for the quick kill, not to mention I suspect this would add some overhead, it's worth a try still.