Moving interface checking on to the interface declaration.
Now using IInterfaceDeclaration to broker interface type checking.
Fixed recursive check of interface declaration.
Now using duck typing for IEnumerable.
Added duck typing for INotifyCollectionChanged and INotifyPropertyChanged.