Added support for "dub init" to take a list of dependencies. It will search...

... for the newest version numbers of each dependency on code.dlang.org (or whatever other PackageSupplier's are defined) and add the required string to dub.json.

The current <type> functionality (Where you can pass "vibe.d", "deimos" or "minimal" into dub init) has been moved to the --type=<type> option.
"minimal" is the default <type>, as is the case now.

Example:
dub init myProject vibe-d openssl logger --type=vibe.d
will produce dub.json:
{
	"name": "myproject",
	"description": "A simple vibe.d server application.",
	"copyright": "Copyright © 2014, Colin",
	"authors": ["Colin"],
	"dependencies": {
		"logger": "0.3.3",
		"vibe-d": "0.7.21-rc.4",
		"openssl": "1.1.3+1.0.1g"
	},
	"versions": ["VibeDefaultMain"]
}

> Actually, upon second reading it doesnt seem as simple as I thought.

It's not difficult, just setting up and maintaining 2 more services.
Elasticsearch is important for many websites, so writing a client would be very good for vibe.d and it would get us a place [here](http://www.elasticsearch.org/guide/en/elasticsearch/client/community/current/clients.html). Still too much work for me atm.

> How about std.algorithm.levenshteinDistance?

That was my first though too, but I dismissed it because it allocates quite some memory (filed as [Issue 13834](https://issues.dlang.org/show_bug.cgi?id=13834 "make levenshteinDistance @nogc")). Even if it didn't allocate, it's vulernable to simple DOS attacks, so one would need to limit the maximum search length.
There is also [soundex](https://dlang.dawg.eu/library/std/string/soundex.html) but that wouldn't work too well.

I think levenshtein would suffice for now (<1000 packages), can you please file an issue with these ideas under dub-registry?