Ported ListSelectionListener to its own class

This definition was crowding the activity class, and we will need to
duplicate similar functionality in other areas of the application, so it
is a good idea to separate this into its own class/package.