Cipher Working Per Character

There has been a huge clean up of code.
Code has also been re-factored.
Keyboard now fully working.
Addition and separation of classes which now follow the UML more
closely. UML needs review.