fix range for non-int inputs and pow implementation (#26926)
Summary:
Previously we did not throw if an input to `range` was a non-integer.
We also typed the result from `int ** int` as an integer but returned a float value. The return type should be a float, because if the exponent is negative `int ** int` returns a float.
Batching these two PRs together because it is easier to land and we're almost at the branch cut.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/26926
Differential Revision: D17643039
Pulled By: eellison
fbshipit-source-id: b49203a9d420417e1307bbb653d2e33cd9e530e3