Dry run-ify LLVMSourceConfig

Make it possible to use LLVMSourceConfig in dry run mode. This is useful
because otherwise we can't have a dry run on *any* scripts that use an
LLVMSourceConfig, since it might throw errors that wouldn't occur in
non-dry mode.

This is different from non-dry run in the following ways:
* we do not perform any validation of the source directory (since in dry
  run mode it is reasonable to expect that the directory doesn't even
  exist yet)
* we do not try to add or remove any subprojects on disk

Instead, we do try to keep track of our updates (which projects are
added and which are removed). We don't however look at what may exist on
disk since that increases the complexity of the code significantly and
it is very likely that scripts will create a source directory from
scratch rather than use one where subprojects have already been added.
We may want to fix that after a bit of refactoring.

Change-Id: Ic12c292b9cdc932aa5de3fa780af5e608dcba01c
3 files changed