Various file picker fixes

This fixes a few issues with the file picker that were most noticeable on Windows. This fixes #1810 and most of #1803. **As this involves fairly substantial changes to the file picker code, testing (especially on non-Windows platforms) is much appreciated.**

* #1810 is fixed by not freeing the result of GFileGetHomeDocumentsDir, which caused the path to be garbled.

Most of #1803  is fixed by:
* Preventing crashes by converting backslashes to slashes where necessary in the file picker.
* Altering the logic so if the user attempts to open a folder as a font when it isn't one (e.g. not ufo or sfd), the file picker is re-opened at that file location
* Altered logic so that if a file fails to open, the file picker will default to that last directory (if it's possible)

Note that due to the (somewhat quirky) way that the file chooser works, entering a path that **does not** end in a slash causes that path to be **opened as a font**. If the entered path does have a trailing slash, then it will browse to that location. 

This means that for example, `C:\Users` will initially be tried to open as a font, and when that fails, a new file open dialogue is shown starting at `C:\Users`. If however, the user entered `C:\Users\` and pressed enter, the file browser will navigate to that location without trying to open it as a file. Note that pressing 'OK' will force FontForge to attempt to open the path as a font file.