Adjust chiSymbolCursor correctly in cand selection

When bPhraseChoiceRearward is enable, we need to set chiSymbolCursor to
candidate head before calling SetChoiceInfo. The value of
chiSymbolCursor is determined by oldChiSymbolCursor and candidate
length.

The original code has two problems:

1.  It has an off-by-one issue when calculate chiSymbolCursor. If
    candidate length is 1, chiSymbolCursor shall equal to
    oldChiSymbolCursor.

2.  It does not do chiSymbolCursor adjust when oldChiSymbolCursor is at
    the end of preedit buffer. When oldChiSymbolCursor is at the end of
    preedit buffer, it is not point to end of candidate. We need to
    consider it when calculate candidate head (chiSymbolCursor). This is
    also an off-by-one issue.

These two issues actual hide the problem when we open candidate at the
end of buffer because they works in different direction and becomes
off-by-zero.

Closed #140