Minor code improvement in AbstractSagaManager
Refactoring of Saga Repository and Manager to imprve transaction support

The Saga repository doesn't need to cache Saga instances anymore for any other
purpose than performance. The SagaCache has been moved to the SagaManager,
which is now responsible for dealing with thread-safety and Saga concurrency.

API changes were needed, but are limited to the SagaRepository and some
(abstract) implementations.

Issue #AXON-44 Fixed
Added null check on AssociationValue

When an Event comes in that is unrelated to any saga behavior, there will be a
null association value. In that case, not saga's should be looked up. Instead,
the event must be ignored for that saga type.
Updated dependency versions
Performance improvement by reusing serialized representations

Messages can be wrapped in a Serialization Aware message implementation, which
will help prevent excessive serialization of that message's payload or meta
data. Axon's infrastructure components will recognize SerializationAware
messages and invoke their serialization methods instead of passing their
payload or meta data to the serializer.

In systems where events are stored in the event store and sent over the wire,
while using the same serializer, this increases performance by almost 100%.

Issue #AXON-46 Fixed
Added caching support to Saga Repository

The CachingSagaRepository is a wrapper around another SagaRepository that adds
caching behavior. Commits will allways propagate to the wrapped repository.
Reads will only be propagated if the entries cannot be found in the cache.

Issue #AXON-45 Fixed
Added null-checks before invoking child entities' handler methods
Removed unused (deprecated) classes
Re-arrange mongo query to find saga by association value

Alter the association value query to query by sagaType and associations.
This allows MongoDB to use an index of {sagaType:1, associations:1}
which can be ensured in the MongoTemplate implementation.
Added Saga related aliases to XStream configuration

These aliases will generate shorter element names for Saga related classes,
such as association values.
Merge branch 'master' of https://github.com/andyduncan192/AxonFramework
Added annotation to explicitly identify event sourced entities

Entities within an aggregate now need to be explicitly identified by placing
the @EventSourcedMember annotation on the fields that contain these children.

Issue #AXON-47 Fixed
Added explicit exception for unresolvable serialized types

When attempting to resolve a Class for an unknown SerializedType, the
Serializer interface now presecribes that a UnknownSerializedTypeException must
be thrown. Previously, it was unclear what type of exception would be thrown,
as it depended on the serializer implementation.
Ensure cursors don't timeout when visiting events

Set the NOTIMEOUT option on the DBCursor used to visit events.  Stops
cursors timing out when using a sharded domainevents collection where
events are spread sequentially across shards.
Added concept of "name" to a Cluster

This allows distributed instances of the same cluster to be recognized as such.
Moved SerializationException to serialization package
Added support for replaying on clusters

The ReplayignCluster can wrap any existing cluster to add replay functionality
to it. While in replay mode, published events can be captured and either
backlogged or discarded.

Issue #AXON-10 Fixed
Merge pull request #74 from andyduncan192/master

Cursors timing out visiting events in sharded collection
Merge remote-tracking branch 'sganslandt/master'
Documentation improvement