Convert carryover::recall_list_ to store configs instead of units.

Creating units between scenarios can cause problems (bug #20704).
In addition, when reading from recall_list_, we always want configs
so there is no point converting configs to units only to convert
them back later.
Simplify some code with utils::join().
Rework some header dependencies.

By moving #include's from headers to source files, there are fewer
dependencies overall, reducing how many files need to be compiled
when headers are touched.