Add assert
Add assert
Add test case for maxChiSymbolLen
Reduce maxChiSymbolLen to 39 to avoid overflow

The current preedit buffer size is MAX_PHONE_SEQ_LEN. libchewing needs
to auto commit preedit buffer before reaching MAX_PHONE_SEQ_LEN.
However, the original auto commit threshold, MAX_PHONE_SEQ_LEN - 1, is
not okay because in worst case, the preedit buffer might increase
MAX_PHRASE_LEN at once. In this case, libchewing crashes due to buffer
overflow.

In order to fix the issue, we reduce the maximum value of
maxChiSymbolLen to MAX_PHONE_SEQ_LEN - MAX_PHRASE_LEN = 39, so in worst
case, libchewing still have enough preedit buffer.

Fixed #52
Add struct tag_PreeditBuf
Replace chiBuf and chiSymbolBuf with preeditBuf