Packages.rb - added product upgrade summary functions (bnc#883047)

- 3.1.24

(Note: the methods will be used in `yast2-update`.)
in general this method is quite big and long. I think it is better split it to separate submethods like
```
def group_products_by_status(products)
  kept_products = kept_products(products)
  installed_products = installed_products(products)
  removed_products = removed_products(products)
  upgraded_products = upgraded_products(installed_products, removed_products)

  # remove the upgraded products from selected and removed lists
  removed_products -= upgraded_products.keys
  installed_products -= upgraded_products.values

  ret = ...
```

this way method will be shorted and easier to understand.
I also think that `installed_products` is wrong name as for me it looks like `products_to_install` and `products_to_remove`