Behind The ATM: Keyboard input support and various refactorings

Items that previously could only accept text input through the cursor, such as telephone and receipt, now support keyboard input! It was easier to implement than I expected. And refactorings on different systems: mainly…