Changed example of using interfaces

Removed the IFruitSize interface example and added IPlant instead.
Changed to use Optional.For instead of constructor
Changed interface example to use known interface

Changed from using IPlant to ICloneable.
Removed support for ignoring struct and interface types in
DiscoverTemplateTypes.
Added switch UseClassCollectionType

Added switch to choose between using interface or implementation.
Fixing whitespace

Changed spaces to tabs.