[FIX] account_analytic_analysis: tree fields access rights

Add invoicing related fields on anlytic account tree view for the invoicing group only
Otherwise, when a user not having the invoicing access rights displays the analytic account list, he gets an access right error.

opw-619485
Raise error on read of a browse object with bad id

Check if id is valid by searching record columns when a key error is raised
If the record has the column, the key error is actually an error on a
missing or inaccessible id.

Signed-off-by: Sandy Carter <sandy.carter@savoirfairelinux.com>

Closes #3658
[FIX] purchase: remove redundancy in report

The warehouse name and address name is often the same (name of the company).
Remove the name of the address as two warehouse may use the same address.
Fixes #4062
[FIX] sale_stock: product_id_change_with_wh on sale order popup too

product_id_change_with_wh onchange was not anymore called when using the popup form in sale order line.

The behavior was different concerning the product onchange when being in the editable list or in the popup form
For instance, for make to stock products not having enough stock, the warning was displayed when being in editable list, but not in the popup form

This is a regression of rev. 86f785ae1b2741ab67384f3022b971ab638daeb8

opw-619624
[FIX] purchase: replace company_id widget selection by option no_create

For selection fields, name_get calls to resolve the display name are client-side initiated, and will display "Unknown" if the user does not have read access to the selected company. And the reason for using a selection widget in the first place was to prevent inadvertent creation of companies. This is now doable via the no_create option, so we can remove the selection widget.
[FIX] account: 'currency_id' field not defined on account.bank.statement object (correct name is 'currency')
[FIX] web: get conditional user defaults

This is possible to set field conditional defaults, if the field has the attribute "change_default".
The defaults are set by the web client, by calling the method "get_defaults" of ir.values model, when the onchange is triggered on the field on which the condition is.

In 7.0, all onchanges were triggered clientside, one by one. On creation, the defaults of default_get method were pushed in the form, and then, as the values of the fields were changed (from null to the default value), all onchanges on which there was default value were triggered.

In 8.0, onchanges are performed server side, all at once. On creation, the onchange method is triggered by default (wether or not there is a default value for them), for all fields (widget param of method do_onchange of view_forms js is undefined, meaning the onchange is not triggered on a specific field, but on all fields). In such a case, we must call the get_defaults method of ir.values model for all fields (having change_default attribute), in order the conditional defaults to be set in the form view.
[FIX] purchase: replace widget selection by option no_create

For the same reasons as 37c805f26f7a536dc16b6427ba1cd0abbfce85bd
[FIX] ensure default addon paths are valid (existing)

User-provided addons paths are checked for existence (and rejected), but
default addons paths are not checked, and blow up when trying to listdir
them (e.g. when http.py tries to load modules).

This is an issue when using Odoo from the distributed tarballs, because
the packaging currently moves all modules to openerp/addons and removes
the root ("main") addons directory.
[FIX] point_of_sale: typo

closes #4077
[FIX] hr_attendance: fixed filter and field having
the same name in the attendance search view. Having an action
with search_default_name in context crashed.
[FIX] pad: etherpad limits pad id length to 50

See https://github.com/ether/etherpad-lite/issues/1116
[MERGE] forward port of branch 7.0 up to 284ca73
[MERGE] forward port of branch saas-3 up to 276d0e7
[FIX] web: ensure one2many field destruction on button cancel

The destruction of one2many fields is forced with the event change:effective_readonly
This revision add the forced destruction for cancel(discard) button as well

Otherwise, one2many fields are not properly destroyed when hitting the button "discard" (from save or discard).
This can be problematic for one2many editable list views (such as invoice lines) if you discard while having a mandatory field not filled in the invoice line: You can't recreate an invoice, the one2many editable list is messed up

Use case: Create an invoice, create a line, leave the description, required field, empty. Then, discard. Then, click on create.

opw-616946
[FIX] account: do not validate move when novalidate is in context

The key 'novalidate' is added in the context when an operation not impacting
the validation of a move is made. The validation recreates analytic lines
which decrease the performances.

In case of registrating a payment, the skipped validation are the one from
the reconcile method (reconciliation does not change the validity)
Fixes #3787, opw 618529
[IMP] Cancelling of procurements related to purchase orders should check state/UoM of the purchase order line + optim action_cancel

[IMP] Add tests

[IMP] Clean up
[FIX] tour.js: popover position when scrolling down
[FIX] website_sale: set partner lang according to website lang

On ecommerce checkout, the language of the partner wasn't set according to the language in which he is visiting the website.
Therefore, its partner was set with the default language (English in most cases), and any emails sent to him were not translated in his own language (in the email templates, such as the quotation email he received on order confirmation)
[IMP] crm_partner_assign: add field assigned_partner_id in view

website_customer filters the partners based on assigned_partner_id (the list of
customers that were impletemented by another partner). This field was not
visible so no way to actually display a partner in this list.
Fixes #430, opw 619254