Massive modernization, bugfixes, etc.

Still has a long way to go before this is even remotely stable &
feature-complete, but at least it's not horribly broken anymore. Right now
a patch (see the patches/ directory) is required to make Special:Undelete
function properly. In the future proper hooks will be added to core and
this extension shall use those.

Change-Id: I5fd606c575fe94f20e1c06e4fdf795c3c9c0dd80