Share API 2

This isn't ready to be merged yet, because this is only the backend changes. At this time I would just like a code review of the architecture. You can read this page to get a general overview: https://github.com/owncloud/core/wiki/Share-API

Besides all the new code, the largest change is storing multiple parent references for reshares because it is possible to share to the same user multiple times through group and user shares. By not referencing all parents of a reshare there were unexpected permission and unsharing issues.

This took so long, because I wrote unit tests for 'almost' all of the code. It is currently at 95.62% code coverage and the nice thing is that the tests are fast, all ~500 assertions. One test is failing because of the groups backend and is unrelated to the Share API.

Todo:
- [ ] Update frontend to use new API and write acceptance tests for it
- [ ] Integrate the shares backends for apps and encryption app
- [ ] User and group hook watcher (user deleted, user added to group, etc.)
- [ ] Proper file dependent sharing
- [ ] External API?

I really want to kill all sharing bugs once and for all...