Python font.save SFD CID Font crash on filename

fontforge/sfd.c routine SFDWriteBakExtended() tried to save the next
filename to be written to within the current SplineFont structure.
This because SFDWriteBak() took only a SplineFont argument.  Unfortunately
SFDWriteBak() might immediately switch which SplineFont structure was
active when a CID font was being saved.  The filename might be undefined
and use of sf->filename would crash.

Changed SFDWriteBak() to take a char* filename argument, like the other
two associated routines SFDWriteBakExtended() and SFDWrite().  One other
use of SFDWriteBak() needed to be changed in fontforge/fontview.c

Also change the Python PyFFFont_Save() routine to better utilize the
features of PyArg_ParseTuple() (shorter code) along with fixing a
small gotcha related to free() vs. PyMem_Free().

Tested with both the sample CID font from the original issue #1715 and
with a plain TTF file, with and without a filename and/or a specified
revisions desired count.  Also tested the UI File / Save function.

Closes #1715

There are at least three residual concerns.  One is that the continued
use of "sf->save_to_dir" in SFDWriteBakExtended() is likely also going
to encounter problems.  Somewhat similarly, the use of the global variable
"prefRevisionsToRetain" seems inopportune.

Second, there continues to be severe confusion as to which SplineFont is
the reference SplineFont.  There are lines equivalent to
    SplineFont *sf = fv->cidmaster?fv->cidmaster:fv->sf->mm!=NULL?fv->sf->mm->normal:fv->sf;
distributed over several files.  As it is, the Python APIs font.path,
font.sfd_path, and font.default_base_filename don't seem to know which
SplineFont to report from.  Below, first a CID font, then a TTF font:
```
      Opening input file 'fontex.cid.cff'
        Font 'AdobeSongStd-Light-Hanzi'  from  None
      Saving to output file 'a.sfd' with versioning 2
      At end,
        font.path                    'None'
        font.sfd_path                'None'
        font.default_base_filename   'None'

      Opening input file 'lklug.ttf'
        Font 'LKLUG'  from  /home/tom/study/fonts/FF/lklug.ttf
      Saving to output file 'a.sfd' with versioning 2
      At end,
        font.path                    'a.sfd'
        font.sfd_path                'a.sfd'
        font.default_base_filename   'None'
```

Third, a minor finding, it appears that changing the revisions count can
accidentally delete more than the intended backup files.
```
        -rw-rw-r--  1     23469 Sep  4 14:26 a.sfd-04
        -rw-rw-r--  1     23469 Sep  4 14:27 a.sfd-03
        -rw-rw-r--  1     23469 Sep  4 14:27 a.sfd-02
        -rw-rw-r--  1     23469 Sep  4 14:29 a.sfd-01
        -rw-rw-r--  1   2070471 Sep  4 14:32 a.sfd
    fontforge -quiet -script zhzhzoo2.py lklug.ttf      a.sfd 1
    Opening input file 'lklug.ttf'
      Font 'LKLUG'  from  /home/tom/study/fonts/FF/lklug.ttf
    Saving to output file 'a.sfd' with versioning 1
        -rw-rw-r--  1     23469 Sep  4 14:26 a.sfd-04
        -rw-rw-r--  1     23469 Sep  4 14:27 a.sfd-03
        -rw-rw-r--  1   2070471 Sep  4 14:32 a.sfd-01
        -rw-rw-r--  1   2070471 Sep  4 14:32 a.sfd
                 ? Where did a.sfd-02 go?
```
Merge pull request #1719 from tshinnic/1715_crash_sfd_write_cid_font

Python font.save SFD CID Font crash on filename