== 1. RawPacket keeps the caller's array and returns its own ==
  after raw[0] = 99        : [99, 2, 3]
  after rp.data()[1] = 88  : [99, 88, 3]

== 2. Packet copies in the constructor and in the accessor ==
  after the same two writes : [1, 2, 3]

== 3. The generated equals() still compares the arrays by identity ==
  new Packet({1}).equals(new Packet({1})) : false
