New improved selection code:
- Selection decopuled into a new class
- When you drag the selection against the limits it won't become
permanently smaller, it will "bounce" trying to recover its size.
If you drop it again it will adapt its size to the borders of the
screen.
- Fixed bugs in the button position algorithm.
- Implemented selection animations for future implementations.
More flexible tool API
Minor code format fixes
Clipboard freeze fixed(?)
Arrow correcly growing close to the start point
Improve maintainability
Add undo/redo stack