Correct issues with setting roles on tags, fixes T892

Summary:
- fix definition and implementation of `doRolesExist`
- properly handle role diffing and clearing for tags
- add regression tests in behat
- add support for "the X property is empty" to behat

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

Reviewers: dkobia, rjmackay, aMoniker

Reviewed By: rjmackay, aMoniker

Subscribers: vladimir

Maniphest Tasks: T892

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