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 changed the python.c routine `PyFFFont_Save()` 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?
```