I see that I'm bringing up patches before having some design documents shared, debated and approved. So I will leave this patch here, ready, waiting for the decision on this.
This creates a distinction for collections between being visible and being enable.
This is a follow up on 9ad2c0b6154b and originally presented at D2849.
Although support objects are already behaving different when a collection is
enabled or invisible, mesh objects behave exactly the same.
With this patch users can now disable a collection if they want a group,
boolean, ..., to not be rendered. Or they can enable it (assuming the
collection is visible) to edit those objects.
If we don't implement this patch I believe we will need to replace the collection
visibility with options such as visible to camera, visible to render, ...