[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.
Should this always return a double?  It seems like in other SQL dialects the return type is the same as `base`'s datatype