Making 125 people less mad...

Support store-generated default values

This change allows a property to be marked as using store-generated default values. If no value has been set for the property when the update pipeline inserts the entity the update pipeline will read the value generated from the store. If a value is specified explicitly it will be inserted. This is essentially the same behavior has used for generating keys except that it doesn't involve value generation on Add.

Note that the generation of default constraints in the database by Migrations is not yet implemented so these will need to be setup manually for now.

Also not supported yet is the ability to use this in updates where the semantics are a bit more nuanced.
Consider using a smaller base type for the enum if space is important?
:shipit: