[SPARK-3176] Implement 'POWER', 'ABS and 'LAST' for sql

Add support for the mathematical function "POWER" and "ABS" and the analytic function "last" to return a subset of the rows satisfying a query within spark sql. Test-cases included.
But there is a question, when I input, for example POWER(3, 0.5), the return result could not be the INT type. Should I try convert it to base's datatype as long as it could?