only use alpha channel if it exists
[FIX] api: avoid to return all fields *2many in onchanges

When an onchange returns a change in a 2many field line (a '1' tuple, update), avoid to return all fields of the *2many field but only the altered field.

Otherwise, the web client regard all the fields of the 2many as dirty, and try to write on all fields (even if the value is the same, thus)

opw-615062
[FIX] website_sale: product website description must be translatable
[FIX] account_budget: theoretical amount: ignore future and use datetime
[ADD] account_budget: theoretical amount: tests
[FIX] account_payment: fixed the view of payment order to display the amount of transactions
[IMP] account_payment: remove dead voucher code and extension hook

Since bank statement do not use vouchers anymore in 8.0,
it's not necessary to create the voucher anymore.

Additionally, I add an extension point to let modules adapt
the statement line.
[IMP] doc: try to clarify what $as is in qweb doc
[FIX] website_forum:
   Use if_dom_contains to check if we need to load js
   Fix bug where _tag_to_write_vals was called like old API but model converter was new api
   Move IsKarmaValid and Load CKE only in website_forum context
[FIX] point_of_sale: remove a confusing partial implementation of UoS
[FIX] website_forum:
   Remove useless document ready
   Add select2 to frontend to allow public user to use tags
[FIX] account: do not duplicate analytic lines on analytic journal duplicate
[FIX] Avoid access error on XML id in browse when choosing picking type for manual purchase order.  As they are ordered by sequence, just take the first you can find.
[FIX] website_forum: load js files in the right order.
[FIX] point_of_sale: fix point of sale sequence declaration, github issue #3218
[IMP] point_of_sale: make the sequence field configurable
[FIX] project: access rights and followers

For privacy_visibility 'followers' or 'portal', the user should be follower of the project (not the task).
Remove public access to portal task
Fixes #2372

If no project on the task (or other rule), an employee (not a portal) can access if is follower of the task.
Follower rule is not enough as a user creating a rule will subscribe to the rule but to subscribe to record, the user should have access to it in the first place.
To make sure the snake does not bit its tail, fallback to give access on task where the user is reponsible (user_id = user.id).
Fixes #139

Adapted the tests to the new behaviour (removed not relevant and added some on creation)
[FIX] hw_escpos: use logger instead of prints to avoid corrupting the odoo.py command line interface.
[FIX] requirements.txt: add info about optional python requirements used for the point of sale receipt printing
[FIX] server.py traceback on ctrl-c from windows cmd

Define a shim signal.SIGHUP on windows to avoid an ifdef in the threaded server
loop.