Remove FunctionContext from AggFnEvaluator and address minor TODOs.

AggFnEvaluators now take a FunctionContext for evaluating the
aggregation function as input. This allows every partition in a
partitioned aggregation to have its own contexts, which is necessary
for being able to free the memory allocated for a particular
partition.

Change-Id: I92028a5c1a675e46cee7458d0e3f886a7b87e37f
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4093
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: jenkins