Refactor Vue <-> Editor <-> CodeMirror code.
Introduce Pinia store to keep global state, in order to get rid of a lot of event juggling between Editor class/child components and the root App component.
* Implement Buffer class in main process that watches for changes to the file, and notifies the editor in the renderer process so that it can update the buffer.
* Add Editor.setReadOnly() method
* Add dummy onChangeCallback function
* Remove debug logging
* Add bufferPath to config, support bufferPath symlink
* defaultPath before checking realpath
* Move code for retrieving buffer path into its own file
* Do the realpathSync() call for the whole final file path, to allow the buffer file to be a symlink
---------
Co-authored-by: Jonatan Heyman <jonatan@heyman.info>