Refactor mod list

Includes #495 but has been rebased onto master. 
Spotted a bug! I'm pretty sure that the installed version of a module is never going to be greater than the installed version of the same module. :) 

Pretty sure we should be checking installed versus available. :)