Complete architecture for Data Provider endpoint, fixes T1094

Summary:
- implement read and search
- add supporting classes
- create custom repository

Test Plan:
```
bin/behat -c application/tests/behat.yml -f progress application/tests/features/api.dataproviders.feature
```

Reviewers: aMoniker, vladimir, rjmackay

Reviewed By: rjmackay

Subscribers: eyedol, rjmackay, srutto

Maniphest Tasks: T1094

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