Implement while_true view

`view::while_true(range, predicate)` returns a slice of `range` starting at its beginning and ending at the first element of the range for which the `predicate` is false. 
there seems to be an issue with lambdas and how the `Iterable` concept is checked by models.