Clarify where to place code in lib
Problem
From #412470 (comment 1401213591) it's not clear to many engineers how to organize code in lib/
.
Solution
We should update https://docs.gitlab.com/ee/development/software_design.html#use-namespaces-to-define-bounded-contexts to clarify a strategy for organizing code in lib/
that is domain-oriented.
Ensure there is a place for cross-cutting concerns but that the guideline is clear enough to prioritize domain-oriented organization first.