[IMP] expression.py: add a check to forbid records in domains

Records in domains cause a "maximum recursion depth exceeded" error when
converted to SQL. Simply add a test to show a better error message.
[ADD] QWeb2: add support for operation='attributes' in a t-extend

Same syntax as server's position='attributes' on view inheritance
[FIX] sale: translate advance message on advance invoice
[FIX] event: convert related country_id field to compute field

To avoid being able to change the country of the address (res.partner) from this field
[IMP] test_new_api, test_inherit: improve code of tests
[FIX] mail: set the parent_id to the first message of type email

And fallback of any type if there is none of type email

This fix allow the communication between two mail thread from two different Odoo servers having message creation subtypes, like project issue or crm lead
[REF] Extract the domain generation for get_move_lines_for_reconciliation and get_reconciliation_proposition in new methods

This way, the query method can be used with a custom domain. Such a domain
could match on a 'transaction_ref' field as well as on 'ref' and 'name'.

Example of implementation:

    class account_bank_statement_line(orm.Model):
        _inherit = 'account.bank.statement.line'

        def _domain_reconciliation_proposition(self, cr, uid, st_line,
                                               excluded_ids=None, context=None):
            _super = super(account_bank_statement_line, self)
            _get_domain = _super._domain_reconciliation_proposition
            domain = _get_domain(cr, uid, st_line, excluded_ids=excluded_ids,
                                 context=context)
            new_domain = []
            for criterium in domain:
                if len(criterium) == 3:
                    field, op, value = criterium
                    if (field, op) == ('ref', '='):
                        new_domain += [
                            '|',
                            ('transaction_ref', '=', value),
                        ]
                new_domain.append(criterium)
            return new_domain

        def _domain_move_lines_for_reconciliation(self, cr, uid, st_line,
                                                  excluded_ids=None, str=False,
                                                  additional_domain=None,
                                                  context=None):
            _super = super(account_bank_statement_line, self)
            _domain_meth = _super._domain_move_lines_for_reconciliation
            domain = _domain_meth(cr, uid, st_line, excluded_ids=excluded_ids,
                                  str=str, additional_domain=additional_domain,
                                  context=context)
            if not str and str != '/':
                return domain
            domain = domain[:]
            domain.insert(-1, '|')
            domain.append(('transaction_ref', 'ilike', str))
            return domain
Merge pull request #3121 from odoo-dev/8.0-bank-statement-reconcile-extract-domain-guewen

[REF] Extract the domain generation for get_move_lines_for_reconciliation and get_reconciliation_proposition in new methods
[FIX] report: do not fail if PDF cannot be saved as attachment due to AccessError
[FIX] website: prevent editing contact address with qweb contact widget

Because, currently, it copy the whole address in the contact name. The address is therefore duplicated
[FIX] website: fix snippet banner, else when a video is dropped (using a div), the video is moved outside of the span col-md-6 by the editor and so become invisble
[FIX] account: use float_compare instead of just <>
[FIX] Produce line should be connected to its procurement

[FIX] Better to work through the production_id of the procurement
[FIX] Byproducts should not start in waiting state
Merge pull request #3148 from odoo-dev/8.0-wmsmrporderpoint-jco

8.0 wmsmrporderpoint jco
[FIX] website_sale: no need to specific to a selection field that it is of type char

Besides, if set, the field will appear as a simple char field in the form view & editable lists
+ADD the type in the editable view
[FIX] website: use dom element instead of jquery class to click input file

For some reasons, the browser will prevent to open the system file browser when clicking the input file with javascript using the jquery class element, but it works when using the standard js dom element.
[FIX] Do not lose session.db on authentication error
[IMP] point_of_sale: add constraint on company

Using a payment method belonging to another company will raise errors when closing the session.
To avoid being stuck at session closing, forbid to create a POS using a journal of another company.
[FIX] mrp: traceability of production

When consuming product, the main_production_move is set as the source of production (used for consumed_for parameter)
However the method action_consume now (since 661a204) returns the new moves (when spliting) instead of the original one. This means that the tracebility would fail.