1.Fix for ForwardIterator when [first2, last2) is empty.
2.Fix RandomAccessIterator version.(search from last1)
3.Add BidirectionalIterator version.(search from last1)
4.Add sprout::detail::search_one_rev helper function for
BidirectionalIterator version.