=per #15937 Allow PersistentActor to be used as a stackable modification

Fixes the problem reported in [#15937](http://github.com/akka/akka/issues/15937). PersistentActor now calls `super.around*` life-cycle hooks and allows to be mixed into e.g. ActorSubscriber. All current tests + new ones added by me have passed. Method preRestartDefault, lines 326-338 in Processor.scala needs closer attention as adding a call to `super.aroundPreRestart` caused some deeper refactoring - please see the comment in the source code.
I would prefer to pass the `testActor` or a `TestProbe` to the StackableTestProcessor and send ordinary messages to the probe in the around methods instead of testing with logging. Then you can verify with ordinary `expectMsg`.