8.0 : better code for better inheritance of product_id_change

This PR introduced 2 changes:
1) Better handling of context in product_id_change for better inheritance in the modules "sale" and "product_visible_discount"
2) Move method get_real_price() of product_visible_discount into a real function, to make it inheritable

I'm doing these changes to be able to run the module "sale_tax_included_excluded" without patching the official addons. This module is a future OCA module that aims at managing the same products with prices with tax included and prices with tax excluded.
In fact the whole thing can be done as a single expression:
```python
context_partner = dict(context, lang=lang, partner_id=partner_id)
```