refactor: remove ConjugateGradient method
I'm having trouble getting this method to work nicely, the current implementation needed a lot of fine tuning that I'm just not happy with, and it shouldn't really be this difficult to implement. We don't need CG right now, and I'd be happy to reimplement it later if there's a stable default configuration that works well
fix: remove `kmeans` dependency and implement the algorithm by hand
`kmeans` is fancy but uses SIMD features that are only available on nightly, and there's no way to opt out. I don't want to require people to use experimental features to use this crate, and the algorithm for K-Means is not that difficult to implement, so I just did it myself.
refactor: reverse a bit of the previous overhaul, keeping bounds in the initialization method and in the minimizer is a good idea, but they are not required elsewhere