[Data.List] Added missing function for binary search

この間の momonga.vim # 6.1 で二分再帰のコードを書いていたときに，「そういえば二分探索って基本的なアルゴリズムなのに標準関数に無いですね．`index()` は線形探索だし…」みたいな話をしたので，書いてみました．
二分探索の一般的な実装は再帰ですが，Vim script は `maxfuncdepth` の問題とかあるので，ループで実装しました．（この辺りは @koron さんにアドバイスもらいました）

ざっとで良いのでレビューをお願いしたいのと，関数名どうしようかなというのを迷っているのでそこを相談したいです．

候補は

- `binary_search`
- `binsearch`
- `bsearch`

です．特に異論が無ければこのままでいきます．
うーん，この関数は二分探索なので基本的に（比較に使う述語を指定できる以外は）`index()` と変わらないので，あるからこそできる使い方が思いつかないです．
例を示してもらえるとありがたいです．