Validate items before being saving

Items are now validated before being saved to the database via
Database.Save.  IDataErrorInfo is implemented automatically via
DataAnnotations and IValidatableObject is also supported if implemented
on an entity class.
Fixed the IsNew and HasChanges functionality
Allow exporting all proxies to an assembly

By calling Database.ExportProxies, the user can export all proxy classes
to an assembly for debugging or use in an environment which doesn't
support dynamic type generation