change docclass decorator to take doc_type as argument and set names of attributes
add 'name' attribute to BaseDoc, BaseAttribute and BaseCollection and made docclass decorator set name attribute at class definition time
changed docclass decorator call so that it has the doc type name and removed type name declaration from classes
changed isinstance check to isinstance in docclass decorator
changed docclass decorator function to decorator class DocClass
move DocClass to bottom of file removed attempt to set DEFAULT_GROUP in GroupDoc class
remove bulk of __setattr__ and __getattr__ and use __set__ and __get__ instead
rewrite BaseCollection to use __get__ and __set__ instead of __getattr__ and __setattr__ in BaseDoc
rewrite key_attribute to be smarter about setting value (will raise an exception if a doc exists with the value)
made document classes make use of new attribute classes
separated docclasses into their own files