Clamp: avoid bad practice.
* Not a good idea to allow 3 different types in the compare and C cast (ignoring all warnings) to one type. Too easy to accidentally cast between types.
Min/Max templated.
* Any reason these shouldn't be namespaced and have values type checked?
* Clamp made inline.