The way we build context menus in `outliner_tools.cc` is known to be
quite a mess. It's done unlike any other menus and it's not exactly
trivial to add new entries or entire menus. The entries are mostly
callback based and controlled by a general operator. So often the
tooltips aren't specific or just say "(undocumented operator)" even.
This mainly proposes two things:
- Let elements themselves have control over the context menu by
overriding `AbstractTreeElement::expandContextMenu()`.
- Use proper operators for entries. The operators can get the necessary
data via context provided by the Outliner. (Building and using this
context isn't too efficient yet, but could be improved if needed).
As an example, this ports the scene context menu to the new design,
which is only one operator (for starters).
There are likely entires that rely on data that can't be passed around
via context currently. For them using callback based entries is fine for
now still.