Prevents implicit conversions to go undetected, as they will have to be explicit now.
Adds forwards declarations in headers and includes all headers in sources, even if they are found by transitive includes.