This breaks all the things.

First off, iterate in chunks. Second, be sure to pass in an "averager"
which is a function that takes X points and returns the desired type
of average in a tuple of (x, y, z)

Weighting is supposed to be done in the averager.