Modestly refactor KSP and ScanGameData

- `ksp.Registry` and `ksp.RegistryManager` make available the
  registry and manager respectively.
- `ScanGameData` uses transactions.
- `ScanGameData` has docs, and is slightly less ugly.

SCD would be better off *in* the registry, but this is meant to be
part of a bugfix :)

Prelude to #87.
Tests for KSP.ScanGameData

Shows the presence of #87, and hence failing. :)
.dll files are now detected, regardless of case.

Fixes #87.

Causes tests in f8bd7841c9da594ac85ee12faf8bddbf76a61fe8 to
pass! Huzzah! :)
Merge pull request #319 from pjf/87_registerdll_bug

Detect .dlls regardless of case