Added std.algorithm.safeLess for safe signed/unsigned comparison

Added safeLess and rewrote min/max to use safeLess. This is useful for fixing signed/unsigned comparisons once 259 gets fixed.
`!(T0, T1)` is not needed.