Recognize the "systemDependencies" field.
Output all possible source/import files for "dub describe". Fixes #185.

Files that are not used for the current configuration or platform are output with an "unused" prefix (e.g. "unusedSource").
Update change log.
Avoid redundant loading of packages and remove PackageManager.getTemporaryPackage.
Print a proper error message for unknown dependency versions of the root package.
Update GitHub links in README.md
Avoid probing all versions of the root package when resolving its own sub packages.

This avoids downloading all versions of the root package whenever it contains references to sub packages of itself. See #334.
Fix detection of invalid dependencies in sub packages of the root package. See #334.
Disallow :short_hand references to sub packages from within sub packages. See #334.

Until the semantics are defined, disallow this use of the short hand syntax. The two
semantic possibilities for ":subpack2" within a sub package "pack:subpack1" are either "pack:subpack2" or "pack:subpack1:subpack2". Both could be more or less valid options.
Fix detection of root package references during dependency resolution. See #334.

 - References to and from sub packages of the root package are now also recognized as coming from the root package
 - Any dependency reference within a certain package "family"* (including path based ones) is now mapped to the same base package (circumventing the lookup of all possible matches)

* "family" == base package and all of its sub packages
Avoid downloading base packages if possible. Fixes #345.

Before manually extracting a sub package from a base package, the package description of the base package is first searched for the sub package. This avoids the otherwise necessary download of the base package whenever the sub package is a non-path-based one. This also opens the way for the dub registry to always collect all sub packages into the reported package description, so that it will never be necessary to actually download a package for getting a sub package.
Only add platform flags for targets that generate an actual binary. Fixes #346.
Avoid downloading base package for non-existent sub package references, if possible.

When it can be proven that a certain sub package doesn't exist (this is the case when the base package descriptions doesn't contain any path based dependencies), the dependency will be skipped as invalid instead of downloading the whole package to search for the sub package there.
Avoid assertion when building path based sub packages (or packages with path based dependencies).
Add a --temp-build switch to force building in the TEMP folder. Fixes #294.
Resolve sub packages when loading path based dependencies. Fixes #347.
Fix detection of the "command" command line argument. Fixes #351.
Revert "Fix detection of the "command" command line argument. Fixes #351."

This reverts commit cab8ca525327f22ae21759781611ff8b2b0c83ab.
Use executeShell() to invoke the compiler. See #356.

execute() doesn't support running scripts with shebang lines. Still needs to be actually tested with a script on Linux/OS X.
Make prepareBuildSettings, extractBuildOptions and setTarget const