driver: Add support for "fixed" already compiled nodes in the ModuleGraph
A fixed node in the module graph is one which we presume is already
built. It's therefore up to the user to make sure that the interface
file and any relevant artifacts are available for a fixed node.
Fixed nodes can only depend on other fixed nodes.
--make mode can be modified to work with fixed mode. In order to "compile" a
fixed node, the artifacts are just loaded into the HomePackageTable.
Currently nothing in the compiler will produce Fixed nodes but it would be possible to do so with programs which use the GHC API.
Fixed nodes don't need a corresponding source file, useful if you want to generate in-memory modules yourself.
In subsequent tickets we are going to remove the ExternalModuleGraph and
use Fixed nodes for modules in the module graph in oneshot mode.