RestContext: Make typeOfPropertyIs() check flexible

* theTypeOfThePropertyIsNumeric() converted to theTypeOfThePropertyIs()
  with ability to add further type support
Allow checking deeply nested property types and values

* Using Arr::path() to get properties burried deeper in the JSON
  This allow checking properties like: 'values.last_location'
Fix RestContext::thePropertyEquals() to handle numeric values

Make comparison less strict since value from behat is always a string
Add test for updating a post with partial data.

Make sure missing values are ignored not removed
Add tests for posts with limit/offset and orderby/order
Change JSON structure returned to include both url and id of relations

* Changes form_id to a form array containing id and url
* Changes form_group_id to a form_group array containing id and url
* Update tests to match
* Update API to handle this
Make sure errors throw 400 or 404 as appropriate

* Replace 200 ORM Validation errors with 400
* Replace POST and PUT for attr/group on missing form or group with 404
* Remove no longer relevant @todo's