libide: add IdeFileSettings
This will be our base class for implementing various settings that can be applied to a file. My initial thought is that we will load these via ide_file_load_settings_async(). That will use GAsyncInitable to work through GIOExtensionPoints that implement various backends. The first to load would be a modeline that is found in the file. If that is not found, we would then load .editorconfig or similar. If that is not found, we can possibly just fall back to local settings (GSettings). I think I'd like to keep the local settings out of libide and instead in gnome-builder (it can just register the extension point for a gsettings loader at startup).
Showing with 579 additions and 0 deletions