Migrated RegistryVersionNotSupported to a Kraken.
Registry documentation.
Moved all registry related files into their own directory.

- AvailableModule.cs
- InstalledModule.cs
- RegistryManager.cs
- Registry.cs

No changes except for the rename.
Registry: Documentation tweak, tweaked one if -> else if.
Added Registry.Installed(), which returns all installed mods.

Includes both real mods, and DLLs.
Does not yet return virtual packages
Registry.Installed() now returns provided modules as well.

This also adds a new `ProvidesVersion` class to facilitate this.

Includes tests for ProvidesVersion.
Registry.InstalledVersion now reports provided modules.

New internal Provides() method helps us find these.
Don't register DLLs which are part of an installed mod.

The solution I've got walks through all installed mods every time
we find a DLL, making it O(N^2). That would be terrible, but DLL
scans are so rare, and the number of mods we have is so small, that
I'm considering it perfectly acceptable until someone complains
about the speed.

Chances are we may completely remove support for pre-CKAN DLLs
in the future, anyway.

Closes #141 after the user does a `ckan scan`.