Changes to Pickler/Serializer/Reflection for DSS

A collection of commits which are needed for DSS. Each commit represents a new feature.

I revised the pre-/post-processing methods so the APIs I mentioned in #203 are not needed.

1. Pickler: Added PackWithReplacements. See 3c00caf for documentation.

    PackWithReplacements is a safe way to substitute all mutable objects and variables with special-designed Chunks only during serialization.

2. Serializer: Added `Serializer.extractByLabels`. Mainly to re-extract Chunks after a message is deserialized, without needing a full serializer. Again see the commit 6622e74 for example. 

3. Reflection: Extended the API to allow injecting exceptions to a thread during a reflective call (41e0978). This is irrelevant to the Pickler, but to propagate exceptions through a remote object.


This look inside the loop is suboptimal. I think you can do much better by replacing all `from`s by their corresponding `to`s during the initial `ozListForEach`, while storing backups of these nodes in the `nodeBackups` list. Then you don't have anything more to here, and the final loop over `nodeBackups` will restore the nodes.