First cut at migration script

* Creates form
* Imports reports and categories
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
Tags: Better handling of 'parent' field

* Allow parent id, parent slug, or parent array
Fix stray : in validation error messages

: was missing from replacement :errors token
Posts: validate required attributes values are present
Posts: delete missing values on update.
Posts: check for tags by id and slug, rather than name.
Push tags along with migration script