[research] DAV tags experiment

Just wanted to try this out.

On this branch you can do this:
- get a flat list of files by tag: curl -X PROPFIND  `http://root:admin@localhost/owncloud/remote.php/tags/files/tag`
- or get the favorites using the ugly tag: `curl -X PROPFIND  http://root:admin@localhost/owncloud/remote.php/tags/files/_%24%21%3cFavorite%3e%21%24_`
- list of tag types: - get a flat list of files by tag: curl -X PROPFIND  `http://root:admin@localhost/owncloud/remote.php/tags/`

Etc... obviously the user name should also be in the URL to make this work properly.
Also the code itself is very ugly as I didn't have the proper public APIs, so I hard-coded SQL queries, etc.

Still, a nice little POC :wink:

Then next steps would be implementing other verbs like DELETE or MOVE to rename tags, etc.
Maybe have a custom property in the search results that point to the real file under the regular WebDAV endpoint `http://localhost/owncloud/remote.php/webdav`

Ref: https://github.com/owncloud/core/issues/12543

@DeepDiver1975 @evert @dragotin I know we probably don't want to do that until upgrading to Sabre 2.0 as the APIs will probably change. Still, it was a fun little experiment :smile: 
@evert we (actually @icewind1991) did add our own implementation of the object tree to speed up performance as described in the sabredav wiki - is this still a valid approach with respect to sabredav 2.x and/or our currently used version? THX