Fix keyboard emulation.

Previous patch 5a4a159898e79ce88d1a2f85843e973036d6e057 broke
keyboard emulation. For example, typing '@' would enter '2@'
in the guest, due to duplicate but slightly incompatible Linux
keycodes being sent to the kernel.

More precisely:

  - Fix a bug in the computation of the 'modifier' bitmask
    from SDL 1.x

  - Do not send keydown events that were not handled as UI keyboard
    shortcuts to the guest. Rely on kEventTextInput events to send
    Unicode-based key events instead.

    This actually removes some code that was actually dead before
    the 5a4a15989 patch, but became live after it due to a tiny
    developer error (and explained the buggy behaviour) :-(

  - Add docs/ANDROID-KEYBOARD-EMULATION.TXT to explain how all of
    this works at the moment.

NOTE: To test this, you will need to use a Skin that explicitly
      supports a hardware keyboard, or modify your AVD's config.ini
      file to have 'hw.keyboard=yes'

Change-Id: I011cc6da328f6a00d43e02c62733f22dbaa88d1c
Merge "Fix keyboard emulation."