Share tags2

Supersedes #11351.
This PR isn't really about proposal #3812, it's a requirement for fixing #owncloud/contacts#38.
As for tables, there really is another table we're already using here, the relation table, for which I'm not using any mapper currently. I'm really not that acquainted with the injection pattern, but to me, it sounds better to inject $db into `Tags`, and from there into `TagMapper` than injecting a (possibly varying) number of mappers into `Tags`. (And before all that, have `TagManager` inject it into `Tags`.)