Improve algorithm min/max

This avoids a check for mismatched signedness when `SignedType.sizeof > Unsigned.sizeof`: Indeed, in this case, the promotion is to the larger signed type, which means the straight up comparison always works: The second comparison to 0 becomes moot, yet won't be optimized away.

I changed the immutable bool into a string mixin, as it makes a difference for -release but non-inline code.
min max unittest
Make MinType and MaxType private templates.
Documentation tweak about min max return value.
splice min/max with less/greater predicates
tweak conditions in less/greater
Improve less/greater more