Complete Sets endpoint, refs T1091

Summary:
API Class methods modified (classes/Controller/Api/)
    * post
    * get collection
    * get
    * put
    * delete
* classes created
    * Repository (classes/Ushahidi/Repository)
    * Parser (classes/Ushahidi/Parser)
        - create
        - delete
        - read
        - search
        - update
    * Validator (classes/Ushahidi/Validator)
        - create
        - update
    * Autherizer
    * Formatter (classes/Ushahidi/Formatter)
    * Usecase (src/Ushahidi/Usecase)
        - ReadSetData
        - SearchSetData
        - SetData

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

Reviewers: rjmackay, shadowhand

Reviewed By: shadowhand

Maniphest Tasks: T1091

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