Fix to analyze covariant definitions
Changes to preserve CamelCase
Added rendering of an additional copy method which copies only when
the passed input is not an instance of immutable class itself
Added two new settings keys to control the rendering of copy methods and
if the interface should be replaced by the new immutable class
Integrated setting to switch on/off the generation of copy methods
Integrated setting to generate the immutable class as replacement of
the given interface definition