[IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM.  #3440 Enhancement request richard-willowit

The default UoM can only be changed when there are no stock moves (or only cancelled ones), but to any category.
The purchase UoM can be changed whenever you want, but has to be in the same category as the default UoM.

Closes #3440

[IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM.  #3440 Enhancement request richard-willowit

[FIX] Remove line

[FIX] Constraint should be applied when UoM or PO UoM is changed
[ADD] sale: option to install sale_layout from settings menu
[ADD] Add the website_links module.

This module tracks clicks in mass mailing mails and allow the generation of trackable links in a website interface.

Modules modifications
---------------------
Refractoring of the crm_tracking_* classes in a new module.

* Extract the crm_tracking_* from the crm module into a new module "utm"
* Remove the crm_mass_mailing bridge module
* New dependencies of mass_mailing and website_links to utm.
[ADD] stock: display UoM in stock quants
[IMP] base, ir_sequence: removed ir.sequence.type object, added test for ir.sequence.date_range, refactored ir.sequence and ir.sequence.date_range implementation
[IMP] crm: change label of 'probability' field and display 'Customer' in search instead of 'Partner'
[FIX] CRM dependencies
[ADD] product: allow to reorder product attributes
[FIX] website_quote: enable translation for signature modal

Adding <span>'s inside the <p> will allow the translation editor to
distribute the right branding on the strings to be translated.
[IMP] project: select project pricelist based on customer pricelist

Add an invisible field `pricelist_id` to project.project form view, so that when
`partner_id` is changed, `onchange_partner_id` method can also set the
pricelist properly (previously, the pricelist was not set because the
field was not in the view).
[IMP] website.snippet: snippets can be splitted into separate template and be called into the lits of the snippet
[IMP] website.snippet: add data-oe-call to call a template from the website and keep all content editable; used for demo page of snippets
[FIX] website fix image controller for xmlid
[FIX] website_links ZeroClipboard location

move ZeroClipboard to lib
remove useless map file
[IMP] convert.py xml <odoo> parsing and cleanups

- deprecate <url> tag
- deprecate multi levels name for <menuitem>
- <odoo> <openerp> <data> tags are now equivalent and may be nested, it means
  that the <data> tag is now optional and should only be used if the same xml
  file contains both update and noupdate records.

Only the base_menu.xml has been converted to the new format as an example.
Other files will be be progressively converted to avoid useless conflicts in
forward ports.
[FIX] leftover of commit 790312dbf92e302f40782a60c5dc208cd6877079wq
[IMP] website_twitter: authentication error popup with proper description based on twitter error codes and responses

[CLEAN] website_twitter: some linting in twitter_config.py file (indentation
errors, imports to remove, spacing issues).
[IMP] membership: usability

- new help tip when there are no members
- allow to search for members and tags
- move reporting to "Reporting" menu
[IMP] crm: default filter is 'not dead' instead if 'unassigned' and displays an info message in the crm.stage form view. Dead leads should'nt be included in the default view since they can pollute the view over time. Instead, a filter for all leads (except the dead ones) is used by default. A small info message inform the user that the "dead" status is equivalent to setting probabilities to 0 and to fold the stage in kanban for a crm.stage.
[IMP] Propagate cancel should be done for multiple procurements at once