Update 2: The columns were easily style with the stylesheet, as expected. I never found a way to make my own columns appear to the left of the WordPress core columns, and I believe this is intended behavior.
I managed to find a solution to the sorting problem at http://scribu.net/wordpress/custom-sortable-columns.html. An important caveat is that the ‘meta_key’ member of the $vars[] array is referring to a specific post_meta value in the database, which is only obvious in retrospect. It didn’t work at first with my code since I wasn’t storing the total number of votes in post_meta, just each individual vota (and its associated IP).
I’m still trying to figure out how to make the columns appear more nicely. Might be a stylesheet problem.