Replace ABC_CLASS_PREVENT_COPYING() macro with new class abc::noncopyable
Fix compiler errors from previous commit

Commit c9002e7b996a09877e3b165b5b90ad7e472dd561 introduced a number of
changes that broke everything but MSC.