A ByteSlice that keeps an on-demand cached version of
a byte copy. This way, calling getByteCopy() will not create
a million copies if it's called a million times.
Of course, this strategy can be dangerous if you are modifying the underlying
byte (since we are passing the same byte reference around). As a result,
this is mainly useful in read-only views of data.