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.
It would be better to merge two `static if`s for `opEquals` and `opCmp` into one.