Updates to the CSV parsing of run_update.py

We've gotten a few different types of CSVs that we need to read. This update make run_update.py more robust.

test_csv_sniffer contains the tests for all of our live data. This code exposed some bloated other tests. This pull request also trims them down to be more concise and only test what they should