Added '.NET TransactionalFileManager' to packages
This should work now :)
Well.. with a few minor tweaks
Rename TransactionalFilesystem to FilesystemTransaction

So our filenames match our class names. :)
FilesystemTransaction: Dispose of our scope before nulling it.
Throw TransactionalKrakens on double commit/rollback.

In FilesystemTransaction.
GetModuleContentsList() now calls GenerateDefaultInstall()

We could still do with more refactoring here to combine
Install() and GetModuleContentsList(), which still share a lot
of duplicate code.
Removed duplicate CachedOrDownload code. Documented.

For #90.
Refactored IsCached() to reduce duplicate code.

- Added CachedFile() to return a file if cached.
- IsCached() now defined in terms of CachedFile().
- Documentation, yay!

For #90.
Moved all cache functions into Cache.cs

For #90.
Added `new` to GUI properties that shadow existing imports.

This stops a whole lot of whiny errors when building, but doesn't
change functionality.

Attentioning @ROMB and/or @AlexanderDzhoganov on this. I know it's
safe to do this, but an OK that this is fine from a GUI development
standpoint would be good.
Updated FileNotFoundKraken and DirectoryNotFoundKraken.

- Both of these now require a file/directory
- Added more tests.

For #90
Cache objects can (and must) now be created.

- KSP provides a .Cache attribute, for the cache for that instance.
- ModuleInstaller.Cache proxies KSP.Cache
- Lots of tests

For #90
Renamed tests to be in-line with our test conventions.

- KSPTests.cs -> KSP.cs
- ModuleInstallerTest.cs -> ModuleInstaller.cs

This also improves our NUnit out.

For #90.
Merge branch '166_tweaks' into code_health

* 166_tweaks:
  GetModuleContentsList() now calls GenerateDefaultInstall()
  Throw TransactionalKrakens on double commit/rollback.
  FilesystemTransaction: Dispose of our scope before nulling it.
  Rename TransactionalFilesystem to FilesystemTransaction
  Well.. with a few minor tweaks
  This should work now :)
  Added '.NET TransactionalFileManager' to packages

Conflicts:
	CKAN/CKAN/CKAN.csproj
Added more FindInstallableFiles overloads.

Now we can find them from modules and un-opened files, as well
as just stanzas and open zipfiles.
Added KSP.Tutorial() and tests.

Also moved KSPManager tests to their own file.
Improved the use of FindInstallableFiles()

- Now a static method, for easier testing and less coupling.
- Has many method signatures. Can find files from module or stanza,
  zipfile or filename.
- Improved GetModuleContentsList() to use new FindInstallableFiles()

TODO: Still refactor everything use to use FindInstallableFiles()
(eg: Install()).

For #90, relates to #166 (which is contained by #171).
Revert "Added `new` to GUI properties that shadow existing imports."

This reverts commit ed84e8281e26fca8670b35bcb1fcf0f2ccebcd72.
Merge remote-tracking branch 'pjf/code_healthh/code_health'