Resolving IndexError issues with unicode in buffer

When the user is typing on a line that has non-ASCII chars,
CompletionStartColumn tends to screw things up because it used to assume every
byte is a char, which isn't true.

Fixes #788.