Throw an exception if the ByteBuffer provided to Msg is not flipped

`ByteBuffer`s passed to `sendByteBuffer` must be "flipped" previously (their position reset to zero). Not doing this doesn't throw but instead causes zmq to behave erratically.

This pull request verifies that the buffer is effectively flipped. Test cases added for extra safety.