Fix issue with personal mount points and sharing

An issue existed where `readData` used `OCP\User::getUser()` to get the user for personal mount points, which worked in all situations apart from when a personal mount point was used for sharing, so the return from `getUser()` is not the user that owns the share. As such, any personal mount points would not work correctly when shared.

`readData` and `writeData` have been changed from using a `$isPersonal` boolean to using a `$user` string|null. `$isPersonal = false` can now be written as `$user = NULL` (or left out in the case of `readData`), and `$isPersonal = true` can be written as `$user = OCP\User::getUser()`.

This PR fixes the sharing issues encountered in #8167.