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~~ now returns `const`. This is
done for unification with other methods.
It was typo in description!
For arrays of immutable it returns immutable (and for const array returns const).