Returns a single buffer containing the contents of the stream. The buffer may be longer than the stream length.
IMPORTANT: Doing a Write() after calling GetBuffer() invalidates the buffer. The old buffer is held onto until Dispose is called, but the next time GetBuffer() is called, a new buffer from the pool will be required.