=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.
This sounds wrong: it should be possible to opt out of stopping child actors. If Persistence uses actors that must always be stopped then we need to think that through properly, it does sound wrong to me.