Make toByteByffer public

Add method to convert the whole slice into a ByteBuffer
Implement read and skip methods in BasicSliceInput

The default implementations of these methods is very slow.
Add copySlice to DynamicSliceOutput

When reusing an DynamicSliceOutput with the reset method, the data must be
coppied before writing the new data.  This method makes the copy easy
Add method to wrap a byte array with an offset and length
BasicSliceInputr. read(byte[]) should return -1 at end