CRUNCH-346 Don't deep copy immutable writable

Skip deep copying Writables that are primitive, strings, or
immutable derived types.

Also clean up some other issues with deep copying that was not
being done correctly on ByteBuffer and mutable derived types.