Add hotkey evaluation

Targets #396.
I intend to rewrite the key caching and playback, so this is WIP.
Because I don't get any useful info _why_ the functions which failed failed.