Share tags2

Supersedes #11351.
It's not totally necessary, but I didn't want my new Tag and TagMapper classes (files tag.php and tagmapper.php) to clutter up lib\private even more, so i moved them to lib\private\tagging, and updated the namespace accordingly. Afterwards, I also moved Tags (tags.php) and TagManager (tagmanager.php) to that destination to have them all in one place.

*So why am I breaking the API anyway?* Originally I tried to really keep it as it was, but some changes just strongly suggested some modifications (e.g. changing return types from integer IDs to objects of class Tag). I found some statements by @Raydiation to rather encourage changing the API at this point, his main arguments basically being (I hope I'm quoting correctly here):

* There aren't too many apps around that use tags anyway, the most notable on being Contacts (which I'm continuously updating).
* There isn't any Developer documentation yet, so the API isn't that much carved in stone yet as it hasn't been that "visible" to devs. (@Raydiation asked me to write docs, which I'll probably do once this PR is somewhat stablisied).