Valueset updater decomplexify

Reduce the complexity of ValuesetUpdater#perform, and moved some stuff into a more OO format. Also cleaned up the valueset_updater_test a little bit.

Similar to Andy's PR, this one is being kinda finicky with regards to passing the code coverage number in the test suite. Sometimes it passes, sometimes it doesn't.