Refactor posts update API

Summary:
- Scaffolding for refactor of posts update api
- Wiring checks for form, parent and locale validation
- Parse user, tags and values.
- Validate values.
- Update values, tags.
- Don't validate parent or type since those aren't changed after post create.
- Add FormAttributeRepository::getRequired()
- Add type and parent_id into post update data
- Tag create/update/delete tests
Lots of work-in-progress

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

Reviewers: dkobia, eyedol, shadowhand

Reviewed By: shadowhand

Subscribers: rjmackay

Maniphest Tasks: T438

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