Clean up Trilinos dependencies using subpackages to reduce and better control dependencies
Created by: bartlettroscoe
Currently Trilinos has a very course-grained set of dependencies based on fat top-level packages that don't follow Software Engineering Packaging Principles. This has several bad consequences:
When users enable these fat packages with optional dependencies enabled, they get a lot of upstream code built that they typically don't need.
The solution to this problem is to better partition many of these fat top-level Trilinos packages into TriBITS subpackages and then more carefully define dependencies between subpackages. On example is having dowstream packages depend on "Teuchos" of "TeuchosCore", "TeuchosComm", "TeuchosParameterList", etc. (e.g., see #1263 (closed)).