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.
`H` should be lowercase and have a more descriptive name (e.g. `handler`), because it's not a type. It's an alias to a function. The same goes for elsewhere in this pull that uses `H`.

Also, it would be more consistent with the rest of Phobos if `Range` or `R` were used rather than `IRange`, so I think that it would be better to change it, but you can leave it as-is if you want to.