Create generic Collection use case and CollectionRepository, fixes T245

Summary:
Creates a generic use case for API Collections that exposes a SCRUD interface.
Implementing this interface as an abstract class allows for rapid creation of
new SCRUD API endpoints.

Test Plan:
```
bin/phpspec run spec/Ushahidi/Usecase/API/CollectionSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: dkobia

Subscribers: lkamau, PapaLee, eyedol

Maniphest Tasks: T245

Differential Revision: https://phabricator.ushahidi.com/D106