Handle Vowel AM as a char

ISO/IEC JTC1/SC2/WG2 N3207R defines Vowel AM encoding sequence as
Vowel AA + Mai Kang. There is nothing in between the two marks.
This makes it possible to define Vowel AM key to ease Thai/Lao users.

* src/lx-im-table.h, src/lx-im-table.c (lx_is_pua, lx_get_pua_text):
  - Add functions for handling PUA chars.
  - Define LX_PUA_VOWEL_AM as the single PUA for now.
* src/lx-kbd.c (tham_qwerty_map, tham_qwerty_map_lv3):
  - Replace the key for Mai Kao Ho Nung with LX_PUA_VOWEL_AM.
* ibus/engine/engine.c (lx_char_class):
  - Make Vowel AM of class XC_FV2.
* ibus/engine/engine.c (ibus_lanxang_engine_commit_char,
  ibus_lanxang_engine_process_key_event):
  - Add dedicated function for char commit which also handles PUA.
  - Call it instead of doing dirty-hand job at high level.
* ibus/engine/engine.c (ibus_lanxang_engine_append_preedit,
  ibus_lanxang_engine_commit_char_swapped):
  - Handle PUA.