Adds forwards declarations in headers and includes all headers in sources, even if they are found by transitive includes.
Ensures the delayed connect of the CPU and thread muxes still causes the output to be updated properly.
Ensures that the select callback will be called on the propagation phase, immediately setting the right output. Otherwise the mux won't be updated until the select channel sets a new value.