Refactor post value loading

* Remove huge union query in Post model. Instead we're iterating over a list of post attribute types and loading values through $model->load_values_for_post().
* Attribute types are now stored in Model_Form_Attribute::_attribute_types.
This should allow us to extend later and add custom type through
plugins.
* Post_Value:: load_values_for_post() grabs the values for this post
along with their attribute data. We then iterate over these as we
did before.
* We've also moved the date time formatting into the Post_Datetime
model get/set functions.
* Remove support for special 'unknown' value for date fields and use null
* We now don't save values for empty or null fields