Refactor

Introducing a new multiple inheritance mechanism, based on gozala/selfish and restructuring the codebase a little, to improve code sharing across components (like DAV and the upcoming CalDAV)