[FIX] website_quote: compare untaxed amounts in case of discount
[FIX] web: cherry-pick of 893e4268650ddd517e3044f41c582fd92de6edfe & 61207f3f4d9206d4c1a3e484eb89f09d2258977a
[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.
[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] 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] 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
[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