Python scripting fixes (1)

After investigating #1680 "Python scripting: 3 vs 2 data type problems" for even a little while it was evident that a number of APIs had problems.  That some APIs still had not been converted to handle string arguments under Python 3 is what drew my attention initially.  Upon examining more code, more and more oddities kept showing up that could be individual PRs, but also could all be filed under the global rubric "Python scripting needs love".

I will add commits to this pull request as I work through the APIs and routines in `fontforge/python.c`  This process will take an unknown amount of time.  (I like to prove faults through testing, and testing takes time and lots of test code... 1000+ lines so far...)

Thus this pull request can be merged and closed at any point that it seems reasonable to do so.  Perhaps at points where minor/major releases are desired.  When closed and further fixes to python.c are found I will create another PR to accumulate more commits.  The goal is to make the fixes available as soon as discovered, without creating a dozen plus PRs for each discovery.

Closes #1680.
Is better error handling the only effective change here, or was something else wrong?