Multiprocessing, averaging

do period search with multiprocessing, replace weighted variance calculation for loops with numpy.average, value exceptions for numc.
My numerical tests show that this return value needs to be scaled by ``n / (n - 1)`` to return identical results as before. And intuitively that does seem right since we're subtracting off the empirical sample mean.