Catalogs defined in `${ASSET_LIBRARY_ROOT}/blender_assets.cats.txt` should be parsed and be accessible via some API.
This work is done in the branch `temp-asset-browser-catalogs` until we have a working `<filesystem>` replacement (see {T90379}).
The basic code design was approved in {D12172}.
- [x] Given `${ASSET_LIBRARY_ROOT}`, find and parse `blender_assets.cats.txt`. This is done in `AssetCatalogService`, which owns the parsed `AssetCatalog` objects.
- [x] Allow getting a single asset catalog by ID from `AssetCatalogService`.
- [x] Ignore comments, empty lines, and catalog IDs without path.
- [x] When the asset browser switches to another library, (re-)read its catalog definition file.
This task can be marked "done" once its code has actually landed in master.