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.
As `empty` is supposed to be a property, it shouldn't be called with parens. The same goes for elsewhere in this pull where you call `empty` as well as where you call `front`. Both are properties and should never be called with parens. And if I understand correctly, that's the piece of property enforcement that Kenji has been working on making happen (i.e. calling a property won't be legal with parens, but it's optional whether you want to call a non-property function with parens or not). So, at some point, calling `empty()` like this will probably become illegal. Also, even without proper property enforcement by the compiler, calling `empty` with parens will fail if `IRange` is an infinite range, because `empty` wouldn't even by a function.