Issue 10536 & 10538 - std.typecons.wrap/unwrap bug fix and improvement

[Issue 10536](http://d.puremagic.com/issues/show_bug.cgi?id=10536) - std.typecons.wrap doesn't work with a class that defines opCast
[Issue 10538](http://d.puremagic.com/issues/show_bug.cgi?id=10538) - std.typecons.wrap should consider opDispatch

Motivation: Support combination of std.typecons.wrap and Proxy
http://forum.dlang.org/post/mailman.1660.1372917464.13711.digitalmars-d@puremagic.com