Resolve copy-constructor cppcheck warnings

Address cppcheck reports of classes or structs without copy-constructors (cf The Big Three) which have allocated memory that needs to be manually handled. See Issue #506.

PR will be further amended before being ready for review.

So far have:
- Implemented a NONCOPYABLE() macro. A preparatory stage for properly testing subsequent changes when adding copy-constructors.
As the build fails when this line is uncommented, it demonstrates the copy-constructor for ```CacheManager``` is actually being used at present. Cppcheck warning was valid.
Implementing a copy-constructor for this object will be the first priority.