Added Cache.CachePath(CkanModule), for easy module saving!

Includes test. :)
ModuleInstaller: Use supplied KSP, not CurrentInstance

Important for testing, encapsulation, and to get away from
CurrentIntance which is practically a global variable now.
Replace file transactions with ChinhDo.Transactions.

Closes #185 (no download bug)
Closes #181 (replace our transactions)

We have a lot fewer transactions than I expected, but this seems
to fix the no-download bug in #185.
TxFileManager transactions for EVERYBODY!

- Everywhere I could find that does IO now does it through a transaction
  if possible. Most notably, the registry uses transactions.
- InstallList(), Install(), and Remove() all use transactions.
- CmdLine's Upgrade() is now a transaction around Install and Remove.
- Hand tested. OMG. It put back a botched upgrade as it was, including
  the registry.

Closes #181.
Bonus commit! Fix and re-enable sha1_sum.
Merge pull request #187 from pjf/185_no_downloads

Transactions for EVERYONE!