Rebuild the media API endpoint with clean code, refs T444

Summary:
- add spec for "create media" use case
- add spec for "file upload" tool
- register servies to support file uploads and media create
- implement filesystem storage by using PHP League's Flysystem
- complete the media POST endpoint

Test Plan:
```
./minion --task=migrations:run --up
bin/phpspec run
bin/behat -f progress -c application/tests/behat.yml application/tests/features/api.media.feature
```

Reviewers: eyedol, dkobia, rjmackay

Reviewed By: rjmackay

Subscribers: bodacea, srutto

Maniphest Tasks: T444

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