Refactor mod list

Includes #495 but has been rebased onto master. 
Right now that summary is a little short. May I suggest: "Returns true if a compatible version of this mod exists for the KSP version supplied" ?

Although if you want to test if a particular *version* of the mod is compatible, we can add the mod itself:

```
CkanModule obj = ...;
obj.IsCompatibleKSP(ksp_version);
```

If we only need a way to check if an existing module is compatible, then we may not need this at all.