+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.
Merge pull request #15380 from ktoso/port-persistAsync

!per PersistentActor#persistAsync (forward port)
Merge pull request #15382 from akka/wip-15365-UniqueAddress-master-patriknw

+clu #15365 Make cluster.UniqueAddress public (for validation)
+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
Merge pull request #15362 from 2m/pubsub-wrap-before-routing

=con #15285 wrap message in RouterEnvelope before routing (for validation)
Merge pull request #15385 from akka/wip-13944-send-marker-message-after-recovery-finished-master-ban

+per #13944 Send RecoveryComplete message at end of recovery (Validation)
+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