Specify "Tham" in engine names

To prepare for adding Thai Noi engine.

* ibus/engine/lanxang.xml.in.in,
  ibus/engine/utils.c (ibus_lanxang_get_component):
  - Append "Tham" to engine's long name.
* ibus/engine/lanxang.xml.in.in,
  ibus/setup/Makefile.am:
  - Rename setup program.
* ibus/setup/Makefile.am,
  ibus/setup/setup.c -> tham-setup.c,
  ibus/setup/dlg-setup.c -> tham-dlg-setup.c,
  ibus/setup/dlg-setup.h -> tham-dlg-setup.h,
  ibus/setup/tham-setup.c,
  ibus/setup/tham-dlg-setup.c,
  po/POTFILES.in:
  - Rename source files for setup program.
  - Update #include's and #define's accordingly.
* ibus/engine/lanxang.xml.in.in,
  ibus/engine/utils.c (ibus_lanxang_get_component),
  ibus/setup/tham-setup.c (main):
  ibus/icons/Makefile.am,
  ibus/icons/ibus-lanxang.svg -> ibus-lanxang-tham.svg:
  - Rename icon file.
* ibus/setup/tham-dlg-setup.c (ibus_lanxang_setup_dialog_new),
  ibus/setup/tham-setup.c (main):
  - Append "Tham" to UI & command line option text.
* ibus/engine/lanxang.xml.in.in:
  - Fix <textdomain>.
* po/th.po:
  - Updated Thai translation.
Append 'Tham' to internal logic functions

* configure.ac,
  src/Makefile.am,
  src/lx-im-table.c -> lx-tham-im-table.c,
  src/lx-im-table.h -> lx-tham-im-table.h,
  src/lx-kbd.c -> lx-tham-kbd.c,
  src/lx-kbd.h -> lx-tham-kbd.h,
  src/lx-tham-im-table.h,
  src/lx-tham-kbd.h,
  src/lx-tham-im-table.c,
  src/lx-tham-kbd.c,
  ibus/engine/engine.c:
  - Rename source files
  - Adjust #include's and #define's accordingly
* src/lx-tham-kbd.h, src/lx-tham-kbd.c,
  src/lx-tham-im-table.h, src/lx-tham-im-table.c,
  ibus/engine/engine.c:
  - Rename lx_*() functions to lx_tham_*()
  - Rename LxImAction enum to LxThamImAction
  - Rename LxCharClass enum to LxThamCharClass
  - Rename LX_PUA_VOWEL_AM macro to LX_THAM_PUA_VOWEL_AM
Add 'tham' to setup function names

* ibus/setup/tham-dlg-setup.h, ibus/setup/tham-dlg-setup.c,
  ibus/setup/tham-setup.c:
  - Add 'tham' to function names.
Add 'tham' to config functions & data

* ibus/engine/ibus-config.h, ibus/engine/ibus-config.c,
  ibus/setup/tham-dlg-setup.c (ibus_lanxang_tham_setup_set_values,
  ibus_lanxang_tham_setup_get_values),
  ibus/engine/engine.c (ibus_lanxang_engine_init):
  - Rename IBusLanXangSetupOptions::isc_mode to tham_isc_mode
* ibus/engine/ibus-config.h, ibus/engine/ibus-config.c,
  - Rename CONFIG_ISC_MODE macro to CONFIG_THAM_ISC_MODE, its value from
    "isc_mode" to "tham_isc_mode"
Hide IBusConfig object inside ibus-config.c

* ibus/engine/ibus-config.h, ibus/engine/ibus-config.c:
  - Add ibus_lanxang_init_config() function
  - Keep ibus_config static global var within ibus-config.c
  - Remove IBusConfig* arg from ibus_lanxang_read_config() and
    ibus_lanxang_write_config()
* ibus/engine/engine.c,
  ibus/setup/tham-setup.c:
  - Remove IBusConfig* var
  - Call ibus_lanxang_init_config() instead of initializing the var
  - Remove IBusConfig* arg from ibus_lanxang_read_config() and
    ibus_lanxang_write_config() calls
Refactor IBus engine code for multiple engines

* ibus/engine/Makefile.am, ibus/engine/engine.c,
  +ibus/engine/lx-iengine.h, +ibus/engine/lx-iengine.h,
  +ibus/engine/lx-tham-engine.h, + ibus/engine/lx-tham-engine.c:
  - Replace single IBusLanXangEngine into polymorphic structure, where
    IBusLanXangEngine becomes a delegate of LxIEngine interface,
    which is implemented by the concrete LxThamEngine class.
    In the future, we can add such concrete class for Thai Noi.
  - Use G_DEFINE_TYPE[_WITH_CODE] and G_DEFINE INTERFACE where possible.
* ibus/engine/main.c, ibus/engine/utils.c, ibus/engine/lanxang.xml.in.in:
  - Rename the engine name for factory from 'lanxang' to 'lanxang-tham'.