=rem #13923 Fixes hanging ActorSystem termination

* occurs on failed RemoteActorRef initialization
* fixed shutting down Netty when startup fails
* fixed registering ActorSystem's termination hook before ActorRefProvider
  initialization
* added new test case (checking if no threads left after a failed actor
  system initialization)
=per #15212 Avoid half written snapshots in LocalSnapshotStore

Conflicts:
	project/AkkaBuild.scala
=per #15131 Make LocalSnapshotStore fail if it can't create target directory
=proj #15333 Update to sbt 0.13.5
=pro Add watchSources for *.rst to akka-docs
=rem #13923 Mute log and stack traces in RemoteInitErrorSpec
=tes #15357 fix for PrettyDurationSpec
=act #13678 #15149 Reply with ActorIdentity(None) from deadLetters

(cherry picked from commit b2f96668baf9efa77de5f97223f055c0a78d0cb8)
+tes #15132 Add additional overloaded expectMsg to TestKit
=per #13962 Close LevelDB snapshots to avoid resource leakage
=per #13898 Make LocalSnapshotStore directory creation more robust
!per persistAsync

Breaks binary compatibility because adding new methods to Eventsourced
trait. Since akka-persistence is experimental this is ok, yet
source-level compatibility has been perserved thankfuly :-)

Deprecates:
* Rename of EventsourcedProcessor -> PersistentActor
* Processor -> suggest using PersistentActor
* Migration guide for akka-persistence is separate, as wel'll deprecate in minor versions (its experimental)
* Persistent as well as ConfirmablePersistent - since Processor, their
  main user will be removed soon.

Other changes:
* persistAsync works as expected when mixed with persist
* A counter must be kept for pending stashing invocations
* Uses only 1 shared list buffer for persit / persistAsync
* Includes small benchmark
* Docs also include info about not using Persistent() wrapper
* uses java LinkedList, for best performance of append / head on
  persistInvocations; the get(0) is safe, because these msgs only
  come in response to persistInvocations
* Renamed internal *MessagesSuccess/Failure messages because we kept
  small mistakes seeing the class "with s" and "without s" as the same
* Updated everything that refered to EventsourcedProcessor to
  PersistentActor, including samples

Refs #15227

Conflicts:
	akka-docs/rst/project/migration-guides.rst
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Persistent.scala
	akka-persistence/src/test/scala/akka/persistence/PersistentActorSpec.scala
	project/AkkaBuild.scala
+clu #15365 Make cluster.UniqueAddress public

(cherry picked from commit 2a2caeebd585d6dde53bbca0125e62626f7bae51)

Conflicts:
	akka-cluster/src/main/scala/akka/cluster/Member.scala
=con #15285 wrap message in RouterEnvelope before routing

PubSubMediator uses router which always unwraps RouterEnvelope messages.
However unwrapping is undesirable if user sends message in
ConsistentHashableEnvelope. Thus PubSubMediator should always wrap user
messages in RouterEnvelope which will be unwrapped by the router, leaving
user message unchanged.

Also disallow consistent hashing routing logic in pub-sub mediator.
+per #13944 Send RecoveryComplete message at end of recovery

Fixes #13944

Conflicts:
	akka-docs/rst/scala/code/docs/persistence/PersistenceDocSpec.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	project/AkkaBuild.scala
+per #15229 defer for PersistentActor

* Deferred events are not persisted, thus will not participate in replays
  etc. If users want events to be persisted, they can simply use
  `persistAsync` instead.
* This, 3rd, rewrite extends the Persistent hierarchy by a top level
  trait "Resequenceable", which is used to mark every event to be sent
  in sequence back to the PersistentActor. These are split into
  NonPersistentRepr or PersistentRepr, and acted upon accordingly.
* defer is guaranteed to be called, even after persistence failures
* Includes docs updates for java/scala/java8

Resolves #15229
Depends on #15227

Conflicts:
	akka-docs/rst/scala/code/docs/persistence/PersistenceDocSpec.scala
	akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
	akka-persistence/src/main/scala/akka/persistence/Processor.scala
	akka-persistence/src/test/scala/akka/persistence/PersistentActorSpec.scala
	project/AkkaBuild.scala
=act #15395 update typesafe config API URL
=tes #15132 remove not needed lazy val
=act,clu,con,doc,per,rem,sam #15114 append missing parens at Actor.sender() invocations
=act #13942 Avoid allocations in LoggingReceived when disabled