Rewriting Spark-MSMSeeder

Currently in the process of rewriting Spark-MSMSeeder. Not quite complete yet (and needs tests), but most core functions are now working. I did away with separate code to manage GPUs, and just use CUDA_VISIBLE_DEVICES.