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
Merge pull request #1 from orangutanboy/master

Love the touch keyboard, thanks for creating it! I've refactored it a little, feel free to accept the changes or discard. @M_J_O_N_E_S