added generic Collector, made BaseDecorator implement dict methods on wrapped obj, improved logic and added tests, added a recursiveCollector and SingletonCollector for use in making xml-tree.py