Added geo_mean(l) and required functions; refactor

Additions:
    + Added list_product(l) to libANOVA
        Returns the product of all the values in list l
    + Added nthroot(n, root) to libANOVA
        Returns the <root>th root of n
    + Added geo_mean(l) to libANOVA
        Returns the geometric mean of the values in list l
Refactor:
    - Renamed mean(l) to arith_mean(l) to reduce ambiguity with
geo_mean(l)