* [re-commit] Per view-layer collection visibility
* [re-commit] Fix/workaround issues in pose and edit mode
* Outliner: Gray out collections only when they are invisible
* Outliner: Implement 3 levels of viewport visibility
```
Now collection and objects can be either:
* Hidden for all the view layers.
* Hidden for a view layer but not necessarily for all others.
* Visible for a view layer but not necessarily for all others.
Regarding icons: Whatever we decide to use for the "Hidden for all view
layers" needs to be a toggle-like icon. Because when viewing "Scenes"
instead of "View Layer" in the outliner we should be able to edit the
collection "Hidden for all the view layers" as an on/off option.
Shortcuts:
* Ctrl + Click: Isolate collection (use shift to extend).
* Alt + Click: Disable collection.
* Shift + Click: Hide/Show collection and its children (objects and collections).
```
See T57857 for discussion.
TODO:
* Not rebuild depsgraph on visibility change (only on disable collections).
* New icon for enable/disable (low priority, can be done after merge).
* Expose all options (isolate, hide/show, hide/show hierarchy, enable/disable) to a context menu in outliner.
* Support drag&drop (not sure if it is possible)
* Alt + Click conflicts with emulate 3 mouse button, decide what to do about it (if anything).