New failing test
Added some tests, fixed algorithm
Split the search of the sub-vector into its own function for clarity
Add some documentation
Use recur since we have tail recursion
Merge branch 'binary-search'