=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 is not fully thought through, but why is it not done such that `aroundPreStart` always calls `super.aroundPreStart` and only the root implementation within the `Actor` trait calls `preStart`? (and the same for all other hooks) I remember that there were some good reasons why things are as they are, but it is entirely possible that we missed the simple solution back then.