Implement both automatic and manual temporary upper cases

With this change,
- Shift and Shift lock state of keyboard is maintained by
  LatinKeyboard.ShiftState.
- Shift key state is maintained by ShiftKeyState object in
  KeyboardSwitcher.
- LatinIME informs KeyboardSwitcher that shift key press, release and
  long press and KeyboardSwitcher determines which state LatinKeyboard
  and ShiftLeyState should be.

Bug: 3193390
Change-Id: I948ef26fda512eb1cb0ebddc89d322c4f4f4d670
11 files changed
tree: a07e3d98753fac073d34a643957204beaadcd4c4
  1. dictionaries/
  2. java/
  3. native/
  4. tests/
  5. Android.mk
  6. CleanSpec.mk