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. 
Take a look at the contortions `transformed_view` goes to to handle the storage of the transform function. It's necessary to address the problem you note below about lambdas and the `Iterable` concept.