Include both <algorithm>, to get std::swap() declaration when using C++98, and <utility>, to do the same thing when using C++11. This is not pretty but simpler than using preprocessor tests (which would need to take MSVS into account in a special way) and virtually guaranteed not to break anything. Closes #18220.