Convert some services into factories, refs T696

Summary:
- most services move into factories
- factories map dependencies by resource and action
- endpoint now loads standard CRUDS use cases
- endpoint runs pre-flight read check
- add spec tests for new usecases and repos
- update implemented repositories, resolve conflicts and duplication
- improve the repo search abstractions
- update controllers to use factories
- lots of other misc fixes and cleanup

Next step would be to do read/write data separation.

Test Plan:
```
bin/behat -f progress -c application/tests/behat.yml
bin/phpspec run
```

Possibly not caught by tests is partial conversion from HTTP action names to CRUD actions.

Reviewers: bodacea, rjmackay

Reviewed By: rjmackay

Subscribers: srutto, eyedol, aMoniker

Maniphest Tasks: T696

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