cleanup binary_search
added unfound case, tests, etc.