Describe the Bug
Currently, any downstream code that links to DAGMC must have Eigen3 installed even if it has no direct dependence on Eigen3. Eigen3 is a source-code-header only library, so should be compiled into DAGMC libraries and not necessary to build dependent projects. This problem exists because the DAGMC header is "polluted" with too many other headers.
To Reproduce
Try to build a downstream code, e.g. OpenMC (see discussion in #739), without having Eigen3 installed.
Expected Behavior
Build a downstream code that has no independent/direct dependency on Eigen3 without having Eigen3 installed.