Initial implementation of keyboard-based menu navigation system

For #7
Initially done by @josephbleau with some improvements by me.