abstract sanitizer from webdav processor
the code here is pretty close to the original prototype, and not in a good way.
instead of tightly coupling the sanitizer and the webdav stuff, decouple it and pass the sanitizer as a callback so we can reuse the webdav code in other bots.