Changed Engine from extending KeyAdapater to implementing KeyListener

Use "implement" whenever possible instead of "extends", as both
KeyAdapter and KeyListener perform the same task, while we may want to
extend something else in the future. During this, I added the three
methods that the interface forced me to declare.