Basic motivation is that `AssetCatalogService::get_catalog_tree()` should return a const tree, since this tree is internal state and shouldn't be modified from outside. This exposed a whole bunch of const incorrectnesses and just generally allows to make much more of the API const (as it should be). Also use references instead of pointers in testing functions, where null is not an expected value.