Using std::pow inside stan::math namespace

Specifically the problem started because:

  1. stan offered a version of std::pow which worked with int arguments with one promotion (via vars and complex types I believe)

  2. C offered a version of std::pow which worked with int arguments with one promotion (promoting to double)

  3. C++ offered a version of std::pow that worked with int arguments because the specification allows for this (https://en.cppreference.com/w/cpp/numeric/math/pow).

And somewhere in a test model we did something like std::pow(int, int) and there were ambiguities.