[FIX] web: cherry-pick of 893e4268650ddd517e3044f41c582fd92de6edfe & 61207f3f4d9206d4c1a3e484eb89f09d2258977a
[IMP] sale,warning: usability
[MERGE] forward port of branch 7.0 up to 98c6e7c
[FIX] models: simplify partial setup of fields, let it crash silently

The setup of relational fields may be problematic, as they may refer to unknown
models via custom relational fields.  In a partial setup, do not try to skip
the field setup, but let it go and silently catch any exception if it crashes.
[IMP] ir_qweb: remove the option 'only_date' introducted in cefc9ad8e3e3b0a14804da6c40bfd71e16d4175a. Now we can use widget='date' to do the same thing. That keeps the same behaviour that in the backend.

    <span t-field=model.datetime_field t-field-options="{'widget': 'date'}"/>
[FIX] crm_lead: don't rewrite user_id. Value has not been updated so it's useless. Some module check that user_id is in vals to trigger others actions for nothing.
[FIX] purchase_requisition: change active_id to tender_id in widget context

this is due to commit 6ed774de614a2977a8d186a14ef2cd45a76e7a2e and a37bad205b13cec4f19f8e84e28801278e3e36ca which removes the active_id from context if the target==curent which is the case of this widget, we therefore can not use active_id here.

fix #2385
[FIX] perview button visible
[FIX] product_visible_discount: fix display of unit price according to rule base price like in 7.0 as requested by gab
[FIX] config: fix parsing of geoip db paramater, rename command-line option for consistency
[FIX] website_crm: remove useless request from params, anyway it's a global var
[MERGE] forward port of branch saas-3 up to 6feb5f7
[FIX] product: price_rule_get_multi returns a dict with a dict with tuples
[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