=act - Refactored the BatchingExecutor to support both managed blocking and not.
=con #3993 Send UnsubscribeAck in DistributedPubSubMediator to the right sender
=doc #3986 Slight updates in wording on cluster singleton docs
Merge pull request #1970 from akka/wip-improved-batching-executor-√

=act - Refactored the BatchingExecutor to support both managed blocking ...
=pro use sbt 0.13.2
=tes Remove some old (dead) test/sample code
=pro Update genjavadoc version to 0.7
Merge pull request #2129 from AhmedSoliman/master

Fixes unsubscribe of DistributedPubSubMediator to actually receive the UnsubscribeAck
=pro Remove unused atmos project in build
+con #3972 Make Distributedpubsubmediator support consumer group

1. allow Topic have children topics, which are the groups
2. when publish with sendOneMessageToEachGroup flag, it will send to one
actor each group
Merge pull request #15009 from 2m/use-sbt-13-2-2m

=pro use sbt 0.13.2
Merge pull request #15012 from akka/wip-3969-update-gen-javadoc-master-ban

=pro Update genjavadoc version to 0.7
Merge pull request #15010 from akka/wip-old-cleanup-patriknw

=tes Remove some old (dead) test/sample code
Merge pull request #15013 from akka/wip-remove-atmos-in-build-patriknw

=pro Remove unused atmos project in build
Merge pull request #2115 from cowboy129/master

+con #3972 Make Distributedpubsubmediator support consumer group
=act #3623 unsubscribe when actors terminate, instead of `isTerminated`

* Moved to removing actors proactively when they are terminated instead of
  checking `isTerminated` during publish.
* Subscribers which have registered before initializing the unsubscriber
  will be aggregated in a Seq until one is registered and then it will
  take responsibility of unregistering them on termination.
* Initialization of the unsubscriber can only be run once - attempting
  to initialize the event stream with another unsubscriber will fail,
  and init will return false.
* Assumed having an init (mutable) method on the `EventBus` is fine, as
  it has such methods already and @patriknw's comment in the task for
  this.
* since we must check if the subscriber has any subscribed channels left
  we had to expose this detail from SubchannelClassification via
  `hasSubscriptions`. Increases cost of ubsubscribe(actor, channel) a bit.
* Evacuated the expensive `hasSubscription` call out of eventstream's `unsubscribe` call, and instead making the Unsubscriber check this before it stops watching an actor. If in the mean time the same actor got subscribed, there will be a new Subscribe message emited - so we're good on that side. Also, if it would terminate before the unsubscriber gets the Register message it will call `watch(actor)` on a dead actor, which results in getting Terminated for it, thus we'll stop watching it from the Unsubscriber as expected.

Final squash and small cleanup. Please review again;
=sam Update version numbers to 2.4-SNAPSHOT
Fixed a typo
Merge pull request #15020 from sslavic/patch-1

=doc fixed a typo in remoting docs
=sam #15028 Change reference from java file to scala file