Selection tools: further refinement and clean-up

This commit also fixes an annoying design choice where selection
coordinates were not being updated on MouseUp, only on the last fired
MouseMove event.