Add predicate deduction to std.algorithm.equal

This allows comparing types whose elements don't define opEquals, but can
themselves be compared with equal().