=doc #3986 Slight updates in wording on cluster singleton docs
Fixes #13983

Two changes have been made:
- In AkkaBuild, forced using UTF-8 to verify HTML files containing
  diagrams
- In the documentation chapter Building Akka, added a section clarifying
  the Graphviz dependency of generating Scaladoc Content Hierarchies

These fixes eliminates the issues I faced while building Akka on Windows
with NetBeans. The first issue is a Windows specific issue where the
default charset cannot be UTF-8. The second is Windows related in the
sense that Graphviz, the optional dependency of Scaladoc, had to be
manually resolved.
Updates in the Building Akka documentation page in
accordance with the discussion with @bantonsson
=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
=sam #15028 Change reference from java file to scala file
Merge pull request #15029 from kpfell/15028-akka-sample-cluster-scala-tutorial-fix

=sam #15028 Change reference from java file to scala file
Merge pull request #15008 from ktoso/3986-cluster-singleton-may-become-doubleton-during-splits-ktoso

=doc #3986 Slight updates in wording on cluster singleton docs
=pro Update test dependencies to Scala 2.11 cross published versions
Merge pull request #15019 from akka/wip-update-sample-version-numbers-ban

=sam Update version numbers to 2.4-SNAPSHOT
=pro #15045 Adjust build for Scala 2.11.0

* Forward port of 2b891e7
Merge pull request #15047 from akka/wip-update-test-dependencies-master-ban

=pro Update test dependencies to Scala 2.11 cross published versions
Merge pull request #15011 from csomogyi/master

Fixing minor issues I found while building Akka on Windows
=pro Remove unused dependency version
Merge pull request #15051 from akka/wip-remove-unused-dependency-version-ban

=pro Remove unused dependency version
=rem #13960 #13989 #13742 #13985  Optimize EndpointWriter

* Replace stash with internal bufferi, j.u.LinkedList
* Replace FSM with become
* Adaptive backoff, important to backoff, but not for too long,
  depends on environment and use case
* Prioritize heartbeat messages from remote watcher and cluster
  failure detector
* Use payload messages as heartbeats for transport failure detector,
  change transport failure detector to be based on absolute timeout,
  see ticket #13989 and #13742
* Log remote disassociate from transport failure detector,
  see ticket #13985
* Add benchmark sample in akka-sample-remote-scala
Merge pull request #15049 from akka/wip-2.11-build-adjustments-master-patriknw

=pro #15045 Adjust build for Scala 2.11.0 (for validation)
+sam #13890 Add Akka Main Activator template for Java 8
!act,doc #3893 Removed isTerminated checks from ActorClassification

Instead of isTerminated we now use death watch on subscribers.

! Breaking change - ActorClassification based event buses now require
  and actor system. Previously no actors were involved, but now someone
  has to `watch` the subscribers. The unsubscriber is an system actor,
  and won't be stopped automagically if a bus stops to be used (hard to
  determine what "stops being used" is)
* Replaced isTerminated checks with watching actors
* backing structure for ActorClassification swaped from
  ConcurrentHashMap to immutable.Map with CAS operations on it. This is
  required to avoid races and guarantee register/unregister ordering
  (messages sent with proper sequence numbers) to the unsubscriber.
  Performance tested it and still above 1.3million subscribe+unsubscribe
  ops per second (mac i7, retina), where as the CHM version was
  4 million - but that one could only work in the presence of
  itTerminated - so we pay the price here for removing it.
* `ActorClassification` starts the unsubscriber instance by itself,
  the unsubscriber is an system actor, and can be stopped via
  `ActorClassification#shutdown`
* Will unregister from unsubscriber, when no more subscriptions for
  given subscriber are left in this bus.
* Added missing "Java API: " for some types
* Updated docs to point out the automatic subscriber purging (on terminated)
Merge pull request #15054 from akka/wip-13890-akka-java8-template-master-ban

(Forward Port) +sam #13890 Add Akka Main Activator template for Java 8