Improve build times through header removal and relocation

- Eliminate unused headers
- reduce dependencies among headers (slightly)

The include-what-you-use tool (IWYU) was used to analyze header
dependencies and recommend fixes; some additional manual work was
then performed.
4 jobs for header-cleanup in 795 minutes and 56 seconds (queued for 2 seconds)