Class to automate delegation decisions based on inheritance graph.
Copyright 2004, Robert Dick (dickrp@ece.northwestern.edu).
Whenever you need to delegate to something, inherit from delegate and use
self.__
inappropriate due to reconverging paths in the inheritance graph, the return
value will be None. In the case of reconverging paths, the left-most call in
the method resolution order will be honored. The rest will be nulified. You
can also check to see if the base is the no_delegation object. Delegate to all
your bases if you need everything in the inheritance ...