Moves all state to dedicated context class

This commit moves all state that might change between serialization/deserialization runs into a dedicated class. This class is available to all classes which are concerned with the serialization and will make it super easy to propagate user specific settings to these classes.

In terms of BC, this affects mostly integration points like FOSRestBundle (cc @lsmith77) and will also affect some custom handlers of users. It will also require some of the pending PRs to be updated. 

At this point, I'm interested in feedback whether I missed something that is broken by this change, or use-cases which this change makes impossible.