Fixed timing issue of afterReplay() when replaying on async cluster

The afterReplay() method was invoked after all events had been sent to the
wrapped cluster. If this cluster processes events asynchronously, it is not
unlikely that the afterReplay() method is invoked before all events have been
handled completely.
Currently, the ReplayingCluster will wait for the last event to have been
processed, before invoking the afterReplay() method. The timeout can be
configured by providing meta data on the cluster.

Issue #AXON-269 Fixed