[FIX] api: avoid to return all fields *2many in onchanges

When an onchange returns a change in a 2many field line (a '1' tuple, update), avoid to return all fields of the *2many field but only the altered field.

Otherwise, the web client regard all the fields of the 2many as dirty, and try to write on all fields (even if the value is the same, thus)

opw-615062
[IMP] models: rework the API that deals with dirty fields on records
[FIX] test_new_api: fix/simplify the result of the onchange on one2many fields
[FIX] fields: in *2many convert_to_write(), return all fields for new records and dirty fields for existing records
Merge pull request #3645 from odoo-dev/8.0-fix2manyupdateonchanges-chs

[FIX] api: avoid to return all fields *2many in onchanges
[FIX] correctly set searchview id (web client)

The issue is that when a default searchview is requested, it is
initialized without its view_id.  Result: debug mode can't edit the
search view.  This commit makes sure that when the field_view_get is
received, the correct view_id is set.
Merge branch '8.0' of https://github.com/odoo/odoo into 8.0-linux64