Migrate the NetKAN infrastructure to its own repository.

Closes #261
Merge pull request #262 from pjf/netkan_moving

Migrate the NetKAN infrastructure to its own repository.
Basic file overwrite detection.

Works when I try to install modules. Hooray!
CKAN.dll: Remove deprecated InstallComponent!

Nothing uses this any more, and so it can be safely removed. Hooray!
Updated tests for CopyZipEntry.

Includes explicit tests for #208.
Better handling and decoration of krakens on file overwrite.

Also, these log messages must rock if people don't know our exceptions
are called krakens.
Registry fields are now more private.

This is such a relief to me.
AvailableModule has more privacy. Huzzah!
Our registry now keeps track of which files belong to which module.

We also do consistency checks on install and un-install, and the
registry will auto-upgrade older vesions with this information, because
it's a badass. :)
Decorate FileExistsKrakens with the file owner as well.
It's no longer an error for two mods to claim the same directory.

Plus, our code will remove the directory when the lost mod using it is
removed. Pretty cool, eh?
Our relationship resolver no longer tries to install conflicting mods.

If the user asked for conflicting mods, an InconsistentKraken is thrown.

If mods we're installing or depend upon conflict with recommended or
suggested mods, then the lesser mods are removed from consideration.

I'm a terrible person for not having huge numbers of test cases here,
but I've been tested on huge amounts of CKAN metadata and discovering
*all* my inconsistencies, so I'm pretty sure this works better than
before. :)

Example test:

    ./ckan.exe install CustomBiomes-Data-RSS CustomBiomes-Data-Stock
Merge pull request #263 from pjf/208_file_overwrites

Consistency checks and file overwrite prevention.
Merge pull request #264 from pjf/36_conflicts

Our relationship resolver no longer tries to install conflicting mods.
Sample Corrupt Zipfile and Tests which currently fail #242
Added basic Tx awareness to the registry.
:rocket: Registry transactions! They work, bitches! :rocket:

The registry is now transaction aware. It will sea-lion itself into any
transaction it spots, and roll-back if it's aborted.

The registry *does not* support nested transactions, but it will
detect them and throw an error. It *does* support ambient transactions,
which is what we're using (inner transactions join into the outer ones).

This should make it harder to end up with corrupted states, where the
registry thinks something is installed/uninstalled, but our transaction
has rolled the changes back.

Includes tests like a boss.

Closes #266.
Merge pull request #268 from pjf/266_transactions

Registry transactions! They work, bitches!
Make Monodevelop use Csharp formatting again.

WTF, Monodevelop? The old file looks fine to me.
Mark test TODO and fix indentation #242