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.
How so? Do you have an example where it is required?