Fix broken reveal style settings, refs T174
Further fixes on modal styles for F5 upgrade, refs T174
Replace user registration and login process with a use case, refs T227

Summary:
- install Aura.Di for dependency injection
- spec out use case, validator, and repo
- implement user repository using plain Kohana DB calls
- create parser for UI validation
- create validator for entity integrity
- create hasher for password hashing
- add "verify email" field to user registration (refs T99)
- integrate usecase with controller

Test Plan: `bin/phpspec run` and test manually.

Reviewers: rjmackay, dkobia

Reviewed By: dkobia

Subscribers: srutto, eyedol, lkamau

Maniphest Tasks: T99, T227

Differential Revision: https://phabricator.ushahidi.com/D84
Update api.messages.feature, use box instead of direction/status, refs T189

Test Plan:
```
bin/behat --config application/tests/behat.yml application/tests/features/api.messages.feature
```

Reviewers: eyedol, dkobia

Subscribers: PapaLee, rjmackay, lkamau

Maniphest Tasks: T189

Differential Revision: https://phabricator.ushahidi.com/D101
Enable searching messages by status again, refs D101, refs T189

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

Reviewers: rjmackay

Reviewed By: rjmackay

Subscribers: eyedol, dkobia

Maniphest Tasks: T189

Differential Revision: https://phabricator.ushahidi.com/D103
Ensure that Users collection is always defined in App, fixes T242

Test Plan:
# login
# be on home page, or refresh on home page
# click Workspace
# click Edit Profile under your avatar
# click the modal close button

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: PapaLee, lkamau, eyedol

Maniphest Tasks: T242

Differential Revision: https://phabricator.ushahidi.com/D102
Switch back to base Entity class, DRYer code, refs T225

Test Plan:
```
for x in tags media config; do
    bin/behat -c application/tests/behat.yml -f progress application/tests/features/api.$x.feature
done
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: lkamau, eyedol, PapaLee

Maniphest Tasks: T225

Differential Revision: https://phabricator.ushahidi.com/D104
Add Message entity and spec, refs T225

Test Plan:
```
bin/phpspec run spec/Ushahidi/Entity/MessageSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: PapaLee, lkamau, eyedol

Maniphest Tasks: T225

Differential Revision: https://phabricator.ushahidi.com/D96
Add Tag entity and repository, fixes T239

Test Plan:
```
bin/phpspec run spec/Ushahidi/Entity/TagSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: PapaLee, eyedol, lkamau

Maniphest Tasks: T239

Differential Revision: https://phabricator.ushahidi.com/D98
Add Post entity and spec, refs T225

Test Plan:
```
bin/phpspec run spec/Ushahidi/Entity/PostSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: lkamau, eyedol, PapaLee

Maniphest Tasks: T225

Differential Revision: https://phabricator.ushahidi.com/D97
run phpspec tests with travis, refs T225
Add Role entity and spec, refs T225

Test Plan:
```
bin/phpspec run spec/Ushahidi/Entity/RoleSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: PapaLee, lkamau, eyedol

Maniphest Tasks: T225

Differential Revision: https://phabricator.ushahidi.com/D95
Enable formatted JSON output in dev environment

Test Plan: Inspect responses using browser console.

Reviewers: dkobia, eyedol, rjmackay

Reviewed By: eyedol, rjmackay

Subscribers: lkamau, PapaLee

Differential Revision: https://phabricator.ushahidi.com/D107
Reorganize user registration repo to not be CRUD, fixes T246

Summary:
User registration is a specific workflow, with specific inputs, so it should
not use a CRUD interface with the repository. By having a more specific repository
interface, the boundary between the API and direct user interaction becomes
more clearly defined.

Test Plan:
```
bin/phpspec run spec/Ushahidi/Usecase/User/RegisterSpec.php
```

Reviewers: dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: PapaLee, lkamau, eyedol

Maniphest Tasks: T246

Differential Revision: https://phabricator.ushahidi.com/D105
Add an api endpoit for fetching all enabled data providers

Summary:
* Add a new endpoit api/v2/dataproviders
* Restructure data-providers config params

Todo: Drop `data_feeds` table and it's associated model class

Test Plan:
run test ./bin/behat --config application/tests/behat.yml application/tests/features/api.dataproviders.feature

run ./minion --task=migrations:run --up --group=3-0

Reviewers: shadowhand, rjmackay

Reviewed By: shadowhand, rjmackay

Subscribers: lkamau, srutto

Maniphest Tasks: T192

Differential Revision: https://phabricator.ushahidi.com/D85
Add an api endpoit for fetching all enabled data providers

Summary:
* Add a new endpoit api/v2/dataproviders
* Restructure data-providers config params

Todo: Drop `data_feeds` table and it's associated model class

Test Plan:
run test ./bin/behat --config application/tests/behat.yml application/tests/features/api.dataproviders.feature

run ./minion --task=migrations:run --up --group=3-0

Reviewers: shadowhand, rjmackay

Reviewed By: shadowhand, rjmackay

Subscribers: lkamau, srutto

Maniphest Tasks: T192

Differential Revision: https://phabricator.ushahidi.com/D85
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
Implementation of tags collection API through use case, refs T238

Summary: Implements the tag collection endpoint using the CRUD interface of the Collection use case.

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

Reviewers: rjmackay, dkobia

Reviewed By: dkobia

Subscribers: PapaLee, lkamau, eyedol

Maniphest Tasks: T238

Differential Revision: https://phabricator.ushahidi.com/D99
Fixes broken workspace menu chevron

Summary: * fixes workspace chevron after Foundation 5 upgrade

Test Plan: check workspace chevron in Chrome and FF. It should work as before.

Reviewers: shadowhand

Reviewed By: shadowhand

Subscribers: dkobia

Differential Revision: https://phabricator.ushahidi.com/D100
refresh styles