Adds more preprocessor directives which get rid of clone methods
conditionally

Adds copy methods and proper copy constructor.