Remove all extension interfaces, merge them into View/Document
The interfaces were uneeded complexity without any purpose. With this change all of them are removed and the code is merged into view and document respectively. As a benefit:
- makes the api more discoverable imo
- easier to extend than adding V2 classes
- easier to use, no need to qobject_cast uselessly
- no more virtual signal hacks
- can use PMF style connects now
- removes multiple inheritance, flattens the code
- less code, less TUs, faster compiles