Put code related to handling of value semantics checks in a new class 'ValueSemantics' and made it accessible as a template callable