[FIX] point_of_sale: report, product_id of line is product_product

product_id column of pos_order_line is a product_product
the left join of l.product_id was done on product_template, instead of product_product

It worked as long as the ids product_product were the same as product_template. Meaning that, if you used variants, this report view was screwed.
[IMP] account_budget: added date filter in print budget report

Fixes #1743, opw 611307
[FIX] base: wrong model change check

Comparing an id and a browse record will always fail so the exception would have always been raised when changing a model (e.g. updating a module with custom fields).
[FIX] note: small bugs
[FIX] ir_model: invalidate cache when adding new fields

When a new ir.model.field is created, add the new field in the fields_by_model (cache of custom fields). This is required as the __init__ method would not retrieve the new field if fields_by_model is already set.
Otherwise, the _columns would not contain the new fields and we could not access it without restarting the server (e.g. the installation of a module adds ir.model.fields and use it in the a view.
Forward port of branch 7.0 up to 0ab88f5
Forward port of branch saas-3 up to 7bcefaf
Forward port of branch saas-4 up to rev 15a3a2a
Forward port of branch saas-5 up to rev 4895281e