[algorithm.minmax_element] fix minmax_element(max part) etc.

A minmax_element's max part(pair.second) is the **last** iterator to the largest element.

test code here.
```C++
#include <sprout/algorithm/minmax_element.hpp>
#include <sprout/array.hpp>

SPROUT_STATIC_CONSTEXPR auto input = sprout::make_array<int>(2, 2, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4);
SPROUT_STATIC_CONSTEXPR auto result = sprout::minmax_element(sprout::begin(input), sprout::end(input));
static_assert(*result.first == 1, "a min element is 1.");
static_assert(*result.second == 5, "a max element is 5.");
static_assert(result.first - sprout::begin(input) == 2, "a min element position is 2.");
static_assert(result.second - sprout::begin(input) == 11, "a max element position is 11.");
```

And, rename function template parameter(InputIterator to ForwardIterator).