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.
Travis: Start xvfb for GUI tests.

Tested on #498.
Closes #499.
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.