[sharing] group shares

If a file is shared to multiple groups and to individual users it can happen that a user will end up with multiple mount points. The idea is to group it so that the user will always see only one mount point which adds the permission from every share. Files shared before this changes will not change to avoid confusions because files/folders disappear "magically". 

We receive regularly questions regarding this behavior, e.g. https://github.com/owncloud/core/issues/10003

fix #9724
fix #10678

- [x] what happens if the user decided to unshare from self? In this case we need to unshare all shares not only the mounted one (maybe the share can have a flag "grouped" and a list of shares which are grouped with it)
- [x] the recipient renames the share and afterwards the owner unshares this particular share. In this case the grouping will be based on a different share and the rename will be lost -> make sure that the rename operation renames all grouped shares
- [x] don't create unique name if the new share references the same file/folder, instead use the name already in use.
Please add a comment to make it clearer what this function does.
It seems to return an array with share data.