[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.
[FIX] website: improve performance for attachment creation

website introduces two new stored function fields, which depend on the attachment data
The thing is, these two fields are pertinent for website attachments only
Therefore, we avoid to read the datas field when the attachment is not a website attachment(when not needed), as this is the most costly field to read
[FIX] survey: Was browsing a browse record, useless and traceback... https://github.com/odoo/odoo/issues/2383
Merge remote-tracking branch 'upstream/8.0' into 8.0