Issue 4999 - Add Kenji Hara's adaptTo() to Phobos

http://d.puremagic.com/issues/show_bug.cgi?id=4999

Changes:
- Add `structuralCast` and `structuralDownCast` in `std.typecons` module
- Remove unused and undocumented `structuralCast` which was in `std.exception`.