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)
Status Name Job ID Coverage
  Test
failed job_clang_amd64 #4797
amd64

12:05:00

failed job_gcc_amd64 #4803
amd64

02:37:56

failed job_gcc_amd64 #4800
amd64

07:42:21

failed job_gcc_amd64 #4796
amd64

00:56:36

 
Name Stage Failure
failed
job_clang_amd64 Test The script exceeded the maximum execution time set for the job
build succeeded, 115 warnings.

Testing of doctests in the sources finished, look at the results in builds/quickstart.rst/output.txt.
/var/lib/gitlab-runner/builds/c098b1de/1/jaafar/graph-tool/doc/price.py:104: UserWarning: tight_layout: falling back to Agg renderer
tight_layout()

Session terminated, killing shell... ...killed.
WARNING: Timed out waiting for the build to finish
ERROR: Job failed: execution took longer than 12h0m0s seconds
failed
job_gcc_amd64 Test
<doctest default[7]>:1: UserWarning: tight_layout: falling back to Agg renderer
tight_layout()
<doctest default[12]>:1: UserWarning: tight_layout: falling back to Agg renderer
tight_layout()
<doctest default[16]>:1: UserWarning: tight_layout: falling back to Agg renderer
tight_layout()
<doctest default[20]>:1: UserWarning: tight_layout: falling back to Agg renderer
tight_layout()
ERROR: Job failed: exit status 1