=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 believe it can be simplified here, exactly towards that style. Got a fix actually that simplified this slightly. 
I'll spend a bit checking if it's completely valid and propose some small changes to this PR