fix sprout::equal for empty range

Sample code below may cause segmentation fault.
```c++
#include <vector>
#include <sprout/algorithm/equal.hpp>

int main()
{
        std::vector<int> input;
        auto result = sprout::equal(input.begin(), input.end(), input.begin(), input.end());
}
```
Fix this and remove sprout::detail::equal2_impl_ra since it was unnecessary.