Posts and Post_* improvements

* Share code for unpacking 'form' property
* Make all Post_* models extend Post_Value
  * Use this to handle rules for post_id and form_attribute_id
  * Add check that foreign keys exists
* Add central ORM class to define fk_exists() function
Use general fk_exists check for form check in Group model
Posts: validate required attributes values are present

* Adds a test for require attribute validation
* Updates other tests to make sure they don't fail because
  of a required attribute
Drop support for 'unique' attributes

This turns out to be REALLY ugly to implement. So dropping it unless
requested with a real use case.
Merge branch 'posts-improvements-for-migration' into migration-script
Remove commented require()
Remove 'unique' attribute value from 2.x form
WIP Grabbing all reports not just first 20

Grabbing batches of 50
@todo figure out memory issues
@todo make batch size an option
Automatically add -n to end of posts slugs when autogenerating.

Avoid generating duplicates.
Adding additional debugging output and unset() calls to reduce memory
Switching to incidents API task, task reports paging doesn't work
Fix infinite loop generating post slug
Add params for proxy and using external request for 3.x api.

* Add _request() helper to handle adding base url to requests
  and configuring the proxy
* Better handling for 2.x api url
*
Fix import error'ing from super-long report titles, truncate at 150 chars
Add check to 'no data' error from a 2.x api
Add docs for minion task