Rangeexception front

When an Exception is thrown by a Range the execution of the Range is usually aborted.
This PR add two functions:

* handleFront
* handlePopFront

that wrap a Range and call the functions front and popFront of the wrapped Range. If the wrapped Range throws an Exception an user provided handler is called. This handler gets the Range and the Exception passed and can then be used to handle the Exception and put the Range in an workable state again.

Additional PRs will add handler Ranges for back|popBack, empty and opIndex
I'll let the other reviewers comment, but I don't feel comfortable merging incomplete features. Not forwarding higher range primitives is a pretty big defect IMO, especially when it's not that difficult to do so. I'm not even asking for error handling on all other primitives, just that they should be forwarded so that the wrapped range retains the same API as the original range.