Move the Windows argument-quoting code into the CoqProgramInstance code

All CoqProgramInstances can now benefit from sensible command-line
behaviour on Windows
Use an Option[String] in the ExternalLoadPath constructor
Allow extra arguments to be passed to coqtop when creating CoqTopIdeSlaves
Don't use coqtop to resolve dependencies when building Coq projects

The Coq builder now expands and searches the load path itself; this makes
lookups more reliable and adds proper support for qualified names
Consider objects that don't yet exist when resolving dependencies

Objects that will exist early in the load path will now be preferred over
subsequent objects that already exist. This makes the Coq builder much
better at resolving ambiguous names
Cleaned up the Coq builder's internal dependency tracking