Keyboard mapping improvements

* rewrite keyboard mapping code to use nice variable names
* fix/consolidate Firefox & en-GB keyboard workarounds
* hard/soft reset in menu
* fix detection for en-GB browsers
* run from non-root location