Add modified PSR2 ruleset for spec/* linting

Summary:
Add spec/ruleset.xml - uses PSR2 with exceptions for method scope and camelCase
Add arc lint rules to lint specs separately

Test Plan:
Modify some specs, run arc lint
Modify src/, run arc lint.

Reviewers: shadowhand

Reviewed By: shadowhand

Differential Revision: https://phabricator.ushahidi.com/D312
Fix lint issues in specs

Summary: Fix src/ lint issues

Test Plan: arc lint --everything

Reviewers: shadowhand

Reviewed By: shadowhand

Differential Revision: https://phabricator.ushahidi.com/D313
Validate for required fields before enabling a data provider, Fixes T327

Summary:
  - Use the rules fields on the form field to validate for required fields

Test Plan:
  - Go to messages/settings
  - Attempt to enable a data provider with required fields that haven't been configured.
  - See an alertify show saying the data provider hasn't been configured and it should fail to get it configured.

Reviewers: rjmackay, shadowhand

Reviewed By: rjmackay, shadowhand

Subscribers: srutto, lkamau

Maniphest Tasks: T327

Differential Revision: https://phabricator.ushahidi.com/D301
Add missing post.unpublished translation, refs T497
Add migrations phpcs ruleset and fix lint errors

Summary:
- Fix minor lint errors in migrations
- Add custom ruleset for migrations: PSR2 excluding namespace requirement

Test Plan: arc lint --everything

Reviewers: shadowhand

Reviewed By: shadowhand

Differential Revision: https://phabricator.ushahidi.com/D315
Fix type in "Edit profile" translation key
Fix missing underscore in "Community Liason" translation key
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
Update Ushahidi_Authorizer so that phpunit tests pass, refs T666
Set modal margin based on scroll offset, to keep the dialog in viewport, refs T686
Add bin/update options for no-dev deps, and no git updates

Summary: - Add bin/update options `--no-dev` and `--no-git`

Test Plan:
Run `bin/update`
Run `bin/update --no-git` and check it skips git pull etc
Run `bin/update --no-dev` and check it skip dev dependencies

Reviewers: lkamau, shadowhand

Reviewed By: shadowhand

Differential Revision: https://phabricator.ushahidi.com/D257
Add UshahidiApi/Endpoint, standard parse -> usecase -> format sequence, refs T666

Summary:
- enable UshahidiApi for phpspec and autoloading
- create UshahidiApi/Endpoint class
- create Ushahidi/Usecase interface
- define `endpoint.tags.post.collection` for `POST /tags`

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

Reviewers: rjmackay

Reviewed By: rjmackay

Subscribers: dkobia, eyedol, bodacea

Maniphest Tasks: T666

Differential Revision: https://phabricator.ushahidi.com/D314
Upgrade oauth2-server for new missing token messages, refs T667
Restore OAuth scope checking, add test, fixes T687

Summary:
Lost scope checking while working on T314, this restores it and adds a test
to prevent further regressions.

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

Reviewers: rjmackay

Reviewed By: rjmackay

Subscribers: aMoniker, eyedol, rjmackay

Maniphest Tasks: T687

Differential Revision: https://phabricator.ushahidi.com/D324
Add "layers" to the default token for tests, refs T687
Clean up Controllers that are still passing user into Authorizer, refs T666

Test Plan:
```
bin/behat -f progress -c application/tests/behat.yml
```

Reviewers: rjmackay

Reviewed By: rjmackay

Subscribers: eyedol, rjmackay

Maniphest Tasks: T666

Differential Revision: https://phabricator.ushahidi.com/D325
Initial Data Visualizations view

Summary: Create visualizations view and add menu item to workspace

Test Plan: Go to workspace -> Data Visualizations. You should see a blank view

Reviewers: shadowhand

Reviewed By: shadowhand

Subscribers: rjmackay

Maniphest Tasks: T49

Differential Revision: https://phabricator.ushahidi.com/D318
Fix ParentAccess signature conflict with Authorizer, refs T666
Enable guests to access the /stats endpoint, refs T98
Simplify form editor views

Summary:
- Move all the form manager stuff into a sub app
- Start moving logic to FormEditorController
- Move edit/save attribute handling into editorcontroller
- Drop availableAttributeList and just include it in FormEditor
- Rename FormAttributeList -> AttributeList

Test Plan: Go to http://ushv3.dev/settings/forms navigate around and check its all working

Reviewers: eyedol, shadowhand

Reviewed By: shadowhand

Subscribers: rjmackay

Maniphest Tasks: T681

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