Invalidate Selected and Deselected Objects

To eliminate unnecessary repainting whenever the user changes the selected object, only the old and the new selected objects need to be invalidated. This results in smarter repainting than simply invalidating the entire client area of the view.

To add update hints to selection code