Generalize hot keys to arbitrary keyboard layouts.

* Moved AMHotKeyManager to dynamically generate a string -> keyCode map based on
  keyboard layout.
* Migrated AMConfiguration to use strings instead of directly using keycodes.

This should close issue #12 as some quick testing suggests it supports
Dvorak.