Python 3 compatibility, bugs: font.markClasses

The code tried to use the same value for both indexing into its 1-based
arrays and fetching arguments.  Using PySequence_GetItem(value,1) to
fetch the first argument didn't work.  And since nothing checked the
return value, call PyArg_ParseTuple(NULL,...) got a segmentation fault.

The code used parse format "(sO)" when "sO" was needed, and so was
expecting triply-nested tuples, when a tuple of tuples was needed.

The code used PySequence_Check(), PySequence_Size() and
PySequence_GetItem() without guarding against having received strings
as input, which are also sequences, and would mislead these checks.

The code in GlyphNamesFromTuple() was using PyBytes_AsString() and thus
not allowing Python 3 strings to be used.

And nowhere was code guarding against empty strings for class or glyph
names.

And the bug I was expecting to verify through tests "pt += strlen(pt);"
wasn't a bug after all.  C'est la vie.

Tested with numerous variations on input argument types and counts,
under both Python 3 and 2.

However, not yet tested using Glyph object references, which can be used
in place of glyph name strings.

Note that GlyphNamesFromTuple() is also used from internal routine
ParseClassNames() and external API PyFFGlyph_addPosSub(), so these
fixes will help those also.

Note also that font.markClasses getter/setter is not yet documented.