Base class for all decorators. A decorator can implement any number of interfaces based on IDecoratorInterface. A decorator may derive from another decorator. A decorator should implement GetInterface(..) and test against the interfaces that it supports.