Added contribution guidelines
Removed circular dependency issue in AutowiringClusterSelector

The AutowiringClusterSelector is now self-initializing upon first request,
which removes a circular dependency when used in combination with the
DisruptorCommandBus.

Issue #AXON-186 Fixed
Added support for custom ParameterResolver for aggregates and sagas

Aggregates and Sagas are not (always) constructed in the control of Axon.
Therefore, it is not possible to inject a ParameterResolverFactory. For those
cases, there is now a AnnotationConfiguration class where one can register the
ParameterResolverFactory to use for a specific annotated type (or for all
types).

Issue #AXON-123 Fixed
Fixed another 'circular dependency' issues related to DisruptorCommandBus

When using the DisruptorCommandBus in combination with a JPAEventStore in
Spring, a circular dependency error may appear, depending on the order in which
the beans are declared. This commit solves that issue, by replacing constructor
injection of internal beans to setting injection.

Issue #AXON-186 Fixed
Explicit support for DomainEventStreams that implement Closeable

Made sure all places where Axon reads a DomainEventStream are close when
the DomainEventStream implements Closeable.

Based on code provided by hovenko (https://github.com/AxonFramework/AxonFramework/pull/98),
which has been merged into the axon-2.0.x branch.

Issue #AXON-187 Fixed
Code style improvement
Finding sagas based on an association value now returns a sorted set

This prevents deadlocks by lock being acquired in different orders.
Fixed typo
Made test case more resilient against test ordering

This test suite uses a Spring context, but some tests modify the state of beans. They have been annotated with @DirtiesContext
Fixed issue where events for Saga-in-creation where not handled

When an event was received while a saga was being created, these events would
not be handled by that saga instance. This could happen when a Saga schedules
an event in the @StartSaga handler, and the schedule triggers before the
handler completed.

Issue #AXON-188 Fixed
Fixed issue with SagaMethodHandlerInspector returning null values
Prevent logging of exception when duplicate snapshots are created

The Snapshotter will not log ConcurrencyExceptions any more, as they typically
indicate that a snapshot already exists for the given aggregateId/seqNo.
Instead, a one-liner is logged on info level.

Issue #AXON-191 Fixed
Made MethodMessageHandlerInspector more thread-safe

When clearing a MethodMessageHandlerInspector, which happens in tests, it was
possible that another (simultaneous) call to getInstance() returned null.
Javadoc and code style improvements
Fixed issue with Saga activity while that Saga was being created

This fixes an issue where Saga that dispatch events from their @StartSaga
handler which may result in activity in that same Saga instance.

Issue #AXON-194 Fixed
Added index to ensure replays on larger collections

Ensuring additional index on the event collection to allow replays on mongo event stores.

Issue #AXON-195 Fixed
DisruptorCommandBus will only log errors when dispatching without callback

Instead of defaulting to the LoggingCallback, the DisruptorCommandBus will log
only errors, on the info level.
Added transactionManager to AbstractSnapshotter

This allows non-spring applications to configure a transaction manager that
wraps the snapshot creation process in a transaction.

Issue #AXON-197 Fixed
Added support for reading partial event streams

The EventStore can optionally implement PartialStreamSupport, which allows
clients to read a predefined portion of events, regardless of the availability
of snapshot events.

Issue #AXON-156 Fixed
CachingEventSourcingRepository no longer needs to reload on version conflict

The CachingEventSourcingRepository would force a full reload of an aggregate
when the actual version did not match the expected version. Now, it will use
the cached aggregate, and load the "unseen" events from the event store, if the
event store implements the PartialEventStreamSupport interface. Otherwise,
behavior is unchanged.

Issue #AXON-150 Fixed