moves all state to a dedicated 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 it make super easy to propagate user
specific settings to these classes.
adds more docs
auto fixes
moved to repository
splits context into two sub-classes for serialzation/deserialization
auto fixes
fixes some typos, adds changelog document
updates docs
Update CHANGELOG.md
adds support for polymorphic objects with common base class (closes #45)

This also adds an event prior to deserialization (closes #41).
adds disjunct exclusion strategy (closes #44)
updates license
Update UPGRADING.md
adds versions to doc
some discriminator related fixes
Update doc/reference/annotations.rst
fixes some bugs as per review
adds support for Sequence classes to allow for lazy-initialization
Allow deserialization of polymorphic classes by class without specifying the type
Add test to verify that its not possible to deserialize base polymorphic class without type