Major refactoring of the module

This is a pay-off-our-technological-debt refactoring. We drop dependency on staticpublisher module, and define a set of new interfaces for using with static publishing. We also introduce some base implementations of these interfaces.

Most of the old functionality is replicated, but there are changes to the API that require some configuration to be done if you are upgrading. 

Importantly the following two behaviours are changed:
- the PublishableSiteTree no longer republishes all ancestors up to the root. It only triggers republishing of itself and parent.
- removal of the target page of the RedirectorPage no longer triggers deletion of that redirector (it doesn't have any content in it, just a redirection shiv).