Additional views for Vect
View for splitting a vector in half, non-recursively
View for splitting a vector in half, recursively
This allows us to define recursive functions which repeatedly split vectors
in half, with base cases for the empty and singleton lists.
Covering function for the `Split` view
Constructs the view in linear time
Covering function for the `SplitRec` view
Constructs the view in O(n lg n)