updated before Bristol
Added Daniel's wording; added predicates for BM
Added synopsis for <algorithm> and <functional> from Daniel
pat_first -> first; pat_last -> last
updated tests
Added pred params to the searchers; no use of the preds yet in BM/BMH. No more detail namespace
Renamed pat_first/last to first_/last_
Initial version of the hash/eq version of the code. Passes tests with std::hash/std::equal_to. Fails case-insensitive tests