Added UniqueConstraintException, MissingPropertyValueException and MissingRelatedDataAccessObjectException. Setting missing/invalid related objects now correctly throws MissingRelatedDataAccessObjectException with all providers. All providers now properly throw the right constraint exceptions at the appropriate time/place. Fixed unit test handling of exceptions for providers that defer detection until transaction is committed.