add aggregation functions including corr, covar,regr-slope, regr-interce...

add aggregation functions including corr, covar,regr-slope, regr-intercept and unit tests.

I don't think these aggregations should share the same state object. Only the `corr()` function uses all the fields of the state object, so for the rest of them you're just wasting work accumulating those fields (the M2 fields). I don't think the VM will be able to optimize that out either, since the `@Input` function is processed on a separate machine from the `@Combine` and `@Output` functions.

Instead you should split this into 4 classes, one for each aggregation, and split up the state class. You may be able to use inheritance so that you're not duplicating much code with the state objects. Take a look at how `ApproximateDoubleSumState` works