Mode refactoring

- Enhances mode lifecycle extensibilty
- Permits sub mode like 'Duplication using ALT'

greatly simplifies new mode features (including status message and everything relying on keyboard event)