[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: 
Also I liked that ObjectTree has logic for "getNodeForPath()" that calls "getChildren()", etc to get the proper node.
As @DeepDiver1975 said, implementing our own "getNodeForPath()" can help skip iterating over subnodes and jump directly to the correct sub-node.