This adds proper demuxing that makes process reusable

(for given number of seconds after start)
No input muxing introduced yet, everything is passed
as is.
Added reaction to keys by keycode

Firefox (at least 30.0 for Linux) does not react to keyIdentifier.
In addition to that codes should be pretty much same on all platforms, I don't see why we cannot use that.