More efficient pickling
This avoids serializing each element twice. Because pickling preserves object identity, the behavior was still correct before, it was just less efficient.
The new version is fully backwards compatible, and can still deserialize data from v0.1.4.
There is a test to make sure this is true.