Also fixed unit tests so they run but some still fail
- Added IUserSession mock
- Replaced OCP::getUser() with IUserSession usage to make the mock work
- Added base class for test cases
While not needed for actual contacts sharing (which is solely done via
the Addressbook sharing backend), we need its isValidSource() function
in core's \OC\Tags::getIdsForTag() (which implements \OCP\ITags::getIdsForTag()).
It is required there to test if the items that are tagged with a given
tag are actually allowed to be accessed by the user, i.e. owned by the
user or someone who is sharing it with the user.