Refactoring

- Added state pattern to move between shifted & unshifted
- Refactored creation of key rows to take string of characters
- Raise event for space and delete keys
- Avoid CastException in Key class by trying cast to Border