Merge pull request #173 from p0nce/master

Fix generated VisualD projects with target type "dynamicLibrary".
Properly infer build options and target names when collecting package build settings without a configuration.

Also don't assert when a "targetType": "none" package doesn't have a target name.
Fix --build=ddox.
Don't upgrade unmanaged packages. Fixes #171.

Also renames Action.Type.get to fetch.
Don't warn about missing package.json in CWD when a different package was selected by name.
Only install pre-release versions with "dub upgrade --prerelease" if release versions are also available.
Fix naming convention of PlacementLocation.
Avoid fetching the same package multiple times when sub packages are used.
Remove log output.
Code cosmetics.
Fix duplicate file entries in generated VisualD projects. Fixes #168.

SourceFile.toHash was necessary for AAs to do anything useful and build==true files now have precedence over build==false files.
Fix unit test.
Add ".res" to the list of linker file extensions on Windows.
Update change log.
Fix Path.toNativeString() for empty paths (was missing the ending slash).
Add vibe-d as an optional dependency to let vibe.d compatibility code also work for separate compilation of packages.
Revamp the command line interface with cleanly separated command implementations.
Defer initialization code so that displaying help works immediately and without the danger to fail.
Let --annotate work for all commands.
Add support for a "mainSourceFile" field.

The main source file is used as the root to access the whole package. This is important for dependency based building, such as with RDMD and for special build kinds, such as for a future unit test command. This also improves the robustness of "dub build --rdmd".

Main source files are automatically inferred as follows, if not explicitly given:
 1. search first in "source/", followed by "src/"
 2. take the first match of ("app.d", "main.d", "<pkgname>/main.d", "<pkgname>/<pkgname.d>") as the main file for the automatic "application" configuration
 3. take the first match of ("<pkgname>/all.d", "<pkgname>/package.d", "<pkgname>/<pkgname>.d") as the main file for the automatic "library" configuration