Updating all property validation rules and the condition model to support model types that are not created by type providers, such as transient types that are created and destroyed within a unit of work.  Added support for expressions to the AllowedValuesRule instead of relying on a property path-based source.  Adjusted the assignment of the condition type code to make it unique within a given model type (to avoid static variable memory leaks) and ensure that model types are not accessed until they are ready (the context has completely been set up).