=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.
would it make sense to extend this test with additional stacking, e.g. `BaseProbeActor with Processor with AnotherProbeActor` and verify that they are invoked in right order?