Remove $user parameter from Authorizer interface, refs T666

Summary:
- `isAllowed` no longer defines a `$user = null` parameter
- add UserContext trait
- setup user injection into UserContext trait
- apply UserContext to TagAuthorizer as example

Test Plan:
```
bin/behat -f progress -c application/tests/behat.yml application/tests/features/api.acl.feature
bin/phpspec run -f dot
```

Reviewers: rjmackay

Reviewed By: rjmackay

Subscribers: eyedol, srutto, bodacea

Maniphest Tasks: T666

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