Fix exceptions in MetadataListener.
Add \UnexpectedValueException to castDateTime if type is not set.
Add \UnexpectedValueException to castJson if type is not set.
Add \UnexpectedValueException to castScalar if type is not set.
Add \RuntimeException to castDateTime if value can not be parsed.
Add missing listeners property to PersistenceListener.
Add HydrationListener Tests.
Change docblock for castJson in HydrationListener.
Rename MetadataListener to AnnotationListener and change all references.
Add additional Test class to classmap.
Change docblock in Behaviour Listener.
Change docblock in Hydration Listener.