Combine update steps

Instead of looping all points and comparing their cluster for each
cluster, loop all points once and keep track of each mean's rgb/w.
Re-use random points in performance tests

Instead of generating giant lists each run, generate the largest
set needed for all runs and fake it being smaller for other runs.
Refactor _lib.c, kmeans_update uses array of Points for changes

After some rough benchmarking, the ctypes translation is dominating
total call time, well over 50%.  I either need to figure out how to
reduce it, or use a different mechanism entirely.