foundation for type class based means

- focus currently just on
  - arithmetic mean
  - geometric mean
  - harmonic mean
  - quadratic mean aka root mean square

- where one of the above is supported, there is also a "*By" version which on the fly
  converts elements without the need to map over the container first:
  (1 to 5).map(_.toDouble).arithmeticMean === (1 to 5).arithmeticMeanBy(_.toDouble)

- first dimension based on
  - spire.math.Fractional (arithmetic, geometric, harmonic, quadratic)
  - spire.math.Integral (arithmetic)
  - spire.math.Numeric (arithmetic, geometric, harmonic, quadratic)

- second dimension based on container type, currently
  - concrete Array
  - generic GenTraversable (using aggregate to support parallel collections)