public ByteBuffer getByteBuffer() {
        return buffer;
    }
GrowableByteBuffer encapsulates a ByteBuffer and grows it as needed.
The implementation is safe and simple (and certainly a bit inefficient)
 - when growing the buffer a new buffer
is allocated, the old contents are copied into the new buffer,
and the new buffer's position is set to the position of the old
buffer.
It is possible to set a growth factor. The default is 2.0, meaning that
the buffer will double its size when growing.

Note that NO methods are re-implemented (except growing the buffer,
of course), all are delegated to the encapsulated ByteBuffer.
This also includes toString(), hashCode(), equals() and compareTo().

No methods except getByteBuffer() expose the encapsulated
ByteBuffer, which is intentional.

@author Einar M R Rosenvinge
vespajlib/src/main/java/com/yahoo/io/GrowableByteBuffer.java