OCS API for server-to-server sharing

OCS API for server2server sharing as part of #12285 .

This is work in progress, I just want to give people a chance to look at it early.

This is how the API will look like:

POST to create new server2server share
```
http://localhost/oc/ocs/v1.php/cloud/shares
```

post data: shareWith, token, name, remote, remote_id, owner

POST to notify that the share was accepted
```
http://localhost/oc/ocs/v1.php/cloud/shares/{shareId}/accept
```

post data: token

POST to notify that the share was declined
```
http://localhost/oc/ocs/v1.php/cloud/shares/{shareId}/decline
```

post data: token

POST to unshare server-to-server share
```
http://localhost/oc/ocs/v1.php/cloud/shares/{shareId}/unshare
```
post data: 'token'

Known Issue:

- [ ] if a share was declined the encryption keys are not updated. Will be fixed once #12382 is merged. Doesn't make sense to try to fix this now.
>That's already the token. Nobody besides the local and the remote server knows the token.

Yes. But who prevents me as attacker to unshare a public file share using this mechanism? - Wher is differentated between "public file share" and "s2s secret share"?