Currently sculpt tools use the internal 'tool' enum to categorize them.
This causes some seemingly unrelated brushes to be nested, eg: Flatten Contrast is nested under Smooth.
This proposal is to have a category string for each brush which determines which category it's grouped into.
- Allows for control of how brushes are grouped.
- This name won't be user visible (expect for advanced tool-settings, similar to the sculpt_tool). So people setting custom brush sets can control it.
- Can be used for grease pencil where nearly all tools use the DRAW tool type (making grouping by tool impractical).
- Empty category will list the brush top-level (avoids complications loading old files).
- The factory startup file will write in our own predefined categories written into existing brushes.
- We could optionally do-version existing files, writing categories into brushes when their names match a known list (since many users don't rename their brushes / create new brush sets ... etc).