Rearranged KSP.cs to make it easier to read and navigate

So, I'm submitting this as a PR to the stable branch. It's not technically a bugfix, but it does make working with KSP.cs much nicer, and the actual code changes themselves are very minimal.

Note that changes hitting the release branch will also be merged into dev (but not vice-versa), so dev is always a super-set of stable.

You can tell me that this is breaking my rules, and this should go into dev (`master`), in which case I'll resubmit to there. :)

---

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.