Update to make filtering by type not require a reload of the modules.
Change the name of GetModByfilter (+1 squashed commits)

Squashed commits:

[e9824eb] Unify name filtering and type filtering to use row.Visable.
Wrapped the mod filter and modNameFilter fields into properties so they call update filter on set.
Began separating MainModList into its own class.
Change main to subscribe to a event in MainModList for filter updates.
Also removed unneeded imports in Main.
Remove FilterToolButton dependency in MainModList.
Remove dependency on the ModList from the MainModList constructor.
Moving the decision if a mod is visible from Main to MainModList.
Fixed the Incompatible display bug on this branch.
Changed misleading parameter name in InstalledVersion.
Changed ContainsKey to TryGetValue where appropriate.in Registry.cs.
Started creating a GUIMod class.

Rational is that there was logic duplicated in a number of places - eg. Mod.version.IsGreaterThan(registry.InstalledVersion(mod.identifier) and that it will allow ComputeChangeSetFromModList to be decoupled from the GUI.
Made event handlers for changing the install/uninstall checkboxes.

Completes ComputeChangeSetFromModList decoupling from GUI.
Some refactoring of ComputeChangeSetFromModList.

Also introduced some a helper extension method on GUIMod
Move GUIMod to another file.
General Cleanup
Some very simple testing of MainModList.
Merge branch 'nunit_gui_tests' of https://github.com/pjf/CKAN into RefactorModList
Merge remote-tracking branch 'upstream/master' into RefactorModList

Conflicts:
	CKAN/GUI/MainModList.cs
Fix is not applicable after the refactoring.
Making the version parameter in IsCompatible required.
Moving some properties from GUIMod to CkanModule
Move KSPManager.CurrentInstance.Version() call back into the GUI and change where UpdateModFieldsViaRegistry are called from.