Selecting a brush based on the tool type isn't done anymore,
and this operator doesn't really make sense in the context of
prioritizing brush selection instead of tool selection / the asset
shelf. It would otherwise have to be fixed for storing brush
data-blocks in other mains.
Now instead of creating a brush from scratch, the default asset
should be used instead. I'm pretty sure that is done elsewhere,
and if it isn't it should be fixed.
Removes the need to manually free the mains, since the static variable
will be destructed in the proper order. But still keep that for now, just in case.
This is an experiment, more restructuring and renaming would be needed
if we do this.
* One main database per asset blend file, so that there are no
conflicts between the regular main and different asset blend files.
* Various code for avoiding conflicts and untangling databases can
be removed because of this.
* Assets are appended to this, no linking and overrides. Revert and
changed property highlighting is current broken due to this. This
change does not necessarily need to be made along with the rest
but it makes the brush name editable.
* Some basic checks to avoid linking between regular main and
asset main, but much more would be needed.
* Tool settings brush pointers were changed to do no user counting,
but really should not be part of ID management at all and handled
purely through some runtime lookup outside of it.