improvements to key_handler and mouse_handler

- can register many views at once
- mouse_handler uses reactive class
- shared cancelEvent function