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.
LOL. Clearly, I posted too many comments at once. I rescinded by suggestion that `handle` become `handleException`, because `handleException!Exception` is too much, and having to put the exception type there makes it clear. So, please change it back to `handle`. Also, while you made it `E : Throwable` in the struct, you didn't in the function signature, and the function signature is the place that it really needs to be, because that's what's going to constrain user code, whereas the struct will give an error inside of the function if you pass it something like `handle!int`.