remove pessimization in scalar pow
rework pow; pow_absi has been removed and integrated into pow_abs, and pow is now defined in terms of pow_abs even for integer cases. More tests, correct behaviour and more efficient implementations for integers, also support pow(int, int). fix #794