Make expand_tabs() UTF-8 aware.

Previously, expand_tabs() counted every *byte* rather than every *character*
to determine the proper tab stops.  This change fixes that by skipping over
UTF-8 continuation bytes (bytes of the form 10xxxxxx), which are the only
types of bytes in valid UTF-8 that do not start a character.

This code does not skip over combining characters.
Merge pull request #130 from MarkLodato/utf8-tab-expansion

Make tab expansion UTF-8 aware.