#### Brief overview of PR changes/additions
I split mouse interaction logic into separate small handlers, that are
checking whether they can act on interaction in priority order.
There is separate struct that is responsible fore keeping current map
interaction context, that is used by the handlers.
Solution might not be perfect at the time, but it is first step to
improving quality and consistency of interactions with map interface.
Deleting label clears it's selection state, since now if you delete
label and right click, you will still see context menu for that label.
There are some improvements in map interaction to be more intuitive.
Right click now will select room/label that is clicked.
Right click anywhere will deselect room and bring general popup menu.
Rectangle selection with shift will add elements to list.
Rectangle selection with ctrl will flip elements selection.
#### Motivation for adding to Mudlet
Code easier to comprehend, allowing further changes and fun additions,
like room link tool.
More cosistent and more intuitive way of map interactions.
closes#6033