Cleanup and extend general (file system) path options
The set of options in `common.app.framework.options` for specifying paths at the filesystem are very much focused on files, while sometimes directories are required instead.
Also, recently the `PathPair` class was introduced. It seems useful to integrate that in option handling instead of having that in every application.
Ideas:
* [x] Cleanup box writing (!950)
* Allow writing a `Box` to a file pointed to by a `PathPair`.
* Adopt it in PLCgen for the writers, CIF to mCRL2, CIF simulator, EMF code generation, and SeText generator.
* [x] Cleanup `CifWriter` usage (!968)
* Supply `PathPair` to `CifWriter`, and adapt CIF tools.
* [ ] Use `userPath` instead of `systemPath` for error messages. See also:
* https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537038
* https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537039
* https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537040
* https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537041
* https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537042
* [ ] Don't use result of `File.getPath` method as a path to present to users.
* See also https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/950#note_2537040.
* On 2024-07-11, in `develop`, this is only used in `TwinCatWriter` (both in PLCgen and cif2plc) and in `CrashReport` (but that use is fine).
issue