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.
I see. It can return types from overloading.