Finished implementing selection features.

A PreviousSelection variable was necessary to add in order for the three
SelectTools (not including the MagicWandTool) to work, as they have two
different selections going on at once until the mouse is released. This
then required the storage/restoration/management of the
PreviousSelection in SelectionHistoryItem.