This also introduces a slightly more high-level convenience function for
sending key events. The existing function where an RDP protocol flag field has
to be encoded by the caller is very lowlevel ... and a bad fit for fastpath
input. That could use a refactoring.
According to the specification first two bytes contain keyboardFlags.
Those keyboardFlags are a bit different than in the regular (non-unicode)
Keyboard Event. There is no KBD_FLAGS_EXTENDED here and also when
key is pressed there is neither KBD_FLAGS_DOWN nor KBD_FLAGS_RELEASE flag
set. When key is released the KBD_FLAGS_RELEASE flag is set.