handle: A Range that handles an Exception

When a Exception occurs inside a range chaining the whole chain dies usually. The Handle range fixes that, as it catches a defined exception and calls an user defined handler on it.
If you make the constructor `pure`, you can probably avoid the casts below, and just use `T` instead of `CC` where right now you're doing `cast(T)new CC(...)`, since then the compiler should be able to implicitly convert to the requested mutability.