Ensure to release the VM list mutex before destroying the environment
Merge pull request #195 from eregon/mvm

Ensure to release the VM list mutex before destroying the environment
Rename bootunpickler-decl.hh to bootunpickler.hh

* It is included in mozartcore.hh and has its own .cc.
* There was no bootunpickler.hh but one bootunpickler.cc.
* The interface only needs to be declared at .hh level.
Allow Oz to use the efficient boot unpickler
Implement unpickling of unicodeString in bootunpickler

* Also add an error message when type is unknown.
Fix unpickling of namedname
Fix missing argument in MemManagedList::remove_after()

* Also document usage of remove().
Implement the pickler in C++ for better performance

* More than 60 times faster than the Oz pickler!
* Made available to Oz as the builtin Serializer.pickle.
* Introduces a few core atoms to ensure fast comparison.
* Uses an algorithm close to the one of Serializer.
* Handles resources and read-only variables as the original pickler.
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