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.
This should not be templated. `E`, `handler` and `IRange` from the `handle` template should be used as-is.

(I'd also rename `IRange` to `Range` for consistency with other Phobos range algorithms)