Review 140602 add status model

Here we have combined refactoring and API v2 changes
in fact you can write it as `return false unless other.is_a?(SUSE::Toolkit::ProductEquality)` as you require to both have this comparable.
This change will also fix problematic two direction dependencies, because if you want add new Product class, then you need to beside including this also add it here, which is wrong as mixin should not known about its users.