std.typecons.Proxy inside classes

Because of my pull request: https://github.com/D-Programming-Language/phobos/pull/2586
and, bugzilla: https://issues.dlang.org/show_bug.cgi?id=13623
I want a specialization of Proxy for mixin it into a class.

there are some problems around opEquals and opCmp.
1. when the payload is a class, opEquals doesn't work as expected.
2. when the payload is a class, opCmp causes a runtime error depending on the order of its operands.
Swap the then and else branches with the condition `is(typeof(this) == class)`.