Implement a less problematic list selection UI.
Instead of changing the background color on the row, just stick
a div behind it.  Involves some z-index juggling and some weird
browser behavior but works better to not have to make any DOM
changes to the list when changing selection.