Make KSP.cs a nicer place to work.

(Was #323, but realised this really *should* be on dev)

Changes:

- Added #regions
- Condensed properties
- Added comments
- Grouped similar methods together

Actual code changes:

- Some methods are more private than they were before.
- We throw a `NotKSPDirKraken` where we used to throw a
  `BadVersionException` before.
- `BadVersionExceptions` were never processed by anything, and have been
  removed.