Add blender::bke::AssetLibraryService class that acts like a blendfile-scoped singleton. It's allocated upon the first call to BKE_asset_library_load and destroyed in the LOAD-PRE handler.
The AssetLibraryService ensures that edits to asset catalogs are not lost when the asset browser editor closes (or even reloads). Instead, the AssetLibrary pointers it owns are kept around as long as the blend file is open.
Outside of the scope of this patch: handling the case when the blend file is saved (or saved to a different directory).