Add new new() API to assign IM name. Let old new() invoke new API.
Duplicate and free IM_name in API.
Assign IM name in new(). If IM name is nonempty, an underline is appended.
Let InitTree() read IM_name to choose right IM index tree.
Add switch_IM(), let open_DICT_FILES() be common part of chewing_new_IM() & switch_IM().
Add chewing_get_IM().
Remove unused CompTreeType() in dict.c
Let uint16_t be defined by KeySeqWord, which can be set to uint32_t or other integer types.
Merge branch 'non_phone_API' into general_index
Add SUPPORT_MULTI_IM macro.
Let switch_IM() clears buffer automatically.
Partial implementation of non-zuin input.

Non-zuin input must fill in pho_inx with ASCII code of keys, and accept a space for finishing word-input.
Remove text data support
Remove chewing-definition.h related code
Align cmake generated file with autotools'
Put EndKeyProcess() into NonZuinInput().
Add non-space (general) process into non-zuin input function.
Add a file to contain test cases for non-phonetic IM's.
Improve interacting messages between gen_IM_data and user.
Fix size of queue in BFS as the sum of word_data and phrase_data size.