Avoid memory copy in MessagePacker.writePayload

Improvement based on the discussion https://github.com/msgpack/msgpack-java/pull/82#discussion-diff-12501690. 

Currently it uses 512 bytes as threshold for using the input source ByteBuffer/array directly in writePayload. I'm not sure this value is appropriate or not. Any idea on this?