Use the new serializer for inter-VM operations

* Also removes dependency on Pickle so the whole VM module is serializable!
* No need anymore for the 'pickle.pack' property.
* Sending unit on a VMPort is 50 times faster.
Move definition of pickle() to pickler.hh as it is so simple
Deduplicate features in the Pickler

* Move PickleNode to the header since we need it as an argument type.
Move the Pickler topLevelValue to an argument of pickle()
Reorder a few methods of Pickler
Implement deduplication of builtins in the Pickler
Use std::nullptr_t instead of our custom-defined type

* other places in the codebase already use it anyway.
Fix a segfault due to what seems a bug in GCC
Add a test for pickling, based on base/pickles.oz