Allow std.numeric works with const ranges

Half of algorithms lacks `Unqual` for temporary type based of
`typeof(return)`.

Attention: dotProduct for `const` arrays no returns `const`. This is
done for unification with other methods.
Might be a good idea to have a unittest that verifies the return value is assignable to immutable (i.e., the function should be inferred pure).