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.
Why not `item_obj.browse(cr, uid, rule_id, context=context).base`?