=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
=sam Update Scala dependencies to 2.10.4
Merge pull request #2116 from akka/wip-3960-EndpointWriter-stashing-master-patriknw

=rem #13960 #13989 #13742 #13985  Optimize EndpointWriter
Merge pull request #15058 from akka/wip-update-scala-dependencies-for-samples-master-ban

=sam Update Scala dependencies to 2.10.4
build #15021,#13755 Emit statsd events during build
Merge pull request #15060 from ktoso/wip-15021-measure-each-test-perf-ktoso

build #15021,#13755 Emit statsd events during build
=pro #15031 use sbt-unidoc plugin
Merge pull request #15059 from 2m/sbt-unidoc-plugin

=pro #15031 use sbt-unidoc plugin
=pro all non-words must be replaced with _, for statsd keys
Merge pull request #15069 from ktoso/wip-better-stats-keys

=pro all non-words must be replaced with _ for statsd keys
=act #13966 Change wrong default discardOld in UntypedActor become

(cherry picked from commit 2aada3b5a857552f9d7854a19cd72d77e6a52b9b)
Merge pull request #15096 from akka/wip-13966-become-discardOld-master-patriknw

=act #13966 Change wrong default discardOld in UntypedActor become (for validation)
=pro #15018 update to sbt 0.13.5-RC1 which has publish fix
Merge pull request #15018 from 2m/stamp-version-fix

FAILED: akka-publish-nightly job
=build #15103 Add Build start/finish events
These are visible on the grafana dashboard,
in order to be able to see on which commit
stats have been recorded.

It's enabled via: `-Dakka.sbt.graphite=true`

Resolves #15103
Merge pull request #15127 from ktoso/build-graphite-events

=build #15103 Add Build start/finish events
=pro #15031 move build logic into separate files
Merge pull request #15113 from 2m/sbt-separate-files

=pro #15031 move build logic into separate files
=act,tes Initial draft of internal MetricsKit

Note: This is NOT aimed to provide an micro-benchmarking solution.
The goal is to provide data for broad trend analysis. For techniques
that fight the inliner and other specialised techniques, refer to JMH.

+ custom console and graphite reporters
  - had to be custom because it's not possible to add custom metric
    types to the existing reporters
+ initial hdr.Histogram histogram() provider, see
  http://latencyutils.github.io/LatencyUtils/
+ Not using timers provided by Metrics, instead use the above histogram
+ Added average Actor size measurement
+ Measuring the "blocking time" when an actor is created, before we fire
  of the async part of this process; Measures in loop and will fluctuate
  a lot. Times are in `us` -- System.nanoTime should provide good enough
  resolution.
+ Measuring total actor creation time by using
  `KnownOpsInTimespanTimer`, which given a known number of ops, in a
  large amount of time, roughtly estimates time per one operation.
  // Yes, we are aware of the possibility of GC pauses and other horrors
+ All classes are `private[akka]`, we should not encourage people to use
  this yet
+ Counters use Java 8's `LongAdder`, which is metric's private;
  The new trend in Java land will be copy paste-ing this class ;)
+ Metrics are logged to Graphite, so we can long-term analyse these
+ Reporters are configurable using typesafe-config

! I'm not very happy about how I work around Metrics not being too open
  for adding additional custom metrics. Seems like a hack at places.
  I will consider removing the Metrics dependency all together.
  numbers

Example output:

```
-- KnownOpsInTimespanTimer-------------------------------------------
  actor-creation.total.creating-100000-actors.Props|new-EmptyArgsActor|…||-same
               ops = 100000
              time = 1.969 s
             ops/s = 50782.22
               avg = 19.69 μs

-- AveragingGauge---------------------------------------------------
  actor-creation.Props|new-EmptyArgsActor|…||-same.avg-mem-per-actor
                avg = 439.67
```
=act #15102 No serialization needed for EventStreamUnsubscriber

* The problem was that akka://all-systems/StandardOutLogger ref was
  passed during system shutdown
* Add special serialization of StandardOutLogger, and Nobody