Refactor: CompressedObject and DatabaseObject for code reuse
Refactor: Repository.retrieve_object for CAS access
support for 2.1.x repository history databases
allow for iterator usage of History
raise exception if 2.0.x repo is asked for history