only use alpha channel if it exists
[FIX] web_diagram, unlink connectors/transitions between nodes from the diagram view (transitions IDs sent to the web client were strings instead of integers)
[FIX] point_of_sale: fixed rounding issue for pos order when discount added(maintenance: 615322).
[IMP] web_graph: renamed Quantity field into Count to avoid ambiguities
[FIX] report: page numbering rml reports

Save the NumberedCanvas state before doing a page reset.
The order of execution when rendering an rml report is the following:
1. init canevas (_pageNumber = 1)
2. render the page element
3. if still pages to render, afterPage method
4. if still pages to render, showPage method (_pageNumber += 1)
5. back to step 2 for each page
6. draw the ResetPage element (setting flag _doPageReset=True)
7. end the document build with afterPage & showPage method

The PageReset element should be executed at the end of the rendering of a story (subdocument) to reinitialize the page numbers to 0 (for new story) and insert the pageCount element for that story with the total number of pages (needed if want to use tag <pageCount/> in rml).

In case of NumberedCanvas (e.g. used in Trial Balance report), the numbering is generated at the end of the build using the _saved_page_states dict in the canevas.
To have an accurate _saved_page_states content, it needs to be saved before the pageReset.

Fixes #2225
[FIX] website_certification: no need to set a group to acl if the data is public
[IMP] project: convert file CRLF to Unix end of line
[FIX] project: read access for project user

Backport of 79bed94 (project user access to resource.calendar) and adding the access to resource.calendar.attendance.
It is needed to compute function fields such as day_open (present in form view of project.issue)
Fixes #3201
[FIX] move google analytics js snippet at the bottom (Fixes #3222)
[FIX] stock: inverse function field should write the given value and not current
[FIX] sale: force condtion True for workflow activity trans_ship_ship_except

This is related to fix 43b0a63
[FIX] doc website: application field does not exists on ir.ui.view. The optional inherit used customize_show and active fields
[FIX] mail: limit messages in chatters
[FIX] product: remove empty from state field selection

In order to avoid having twice "empty" in the web client. There is always an empty option in selection field in the web client. When the selection field is required, you have to select it, and it is not required, you can set False as selection value
[FIX] fields: selection, do not try to translate label if label is empty

 - translate with no source returns first translation for this field, whatever the source
 - performance
[FIX] mail: mail_alias conditionally made unique on write

Don't try to make the alias unique if writing on the same id (this is
necessary in res_config views)
[FIX] website_forum: safer conditions in UI for blockng post buttons
[FIX] base: support float rounding with rounding_method=UP (ceiling)

Add rounding_method parameter on float_round method to offer
HALF-UP (default, usual round) or UP (ceiling) rounding method.
Use the second method instead of math.ceil() for product
reservations.

For UP, the python math.ceil() method uses "torwards infinity"
rounding method while we want "away from zero".
Therefore we use the absolute value of normalized_value to make
sure than -1.8 is rounded to -2.0 and not -1.

Fixes #1125 #2793

This is a cherry-pick of d4972ff which was reverted at 333852e due
to remaining issue with negative values.
[FIX] product: remove digits_precision from uom factor fields

Remove the hardcoded precision of 12 on factor and factor_inv,
to use the complete natural precision of NUMERIC types,
preserving all significant digits.

e.g. a UoM with a factor_inv of 6.0 used to be computed as:
factor_inv: 6.0 -> factor: 0.166666666667 (1.0/6.0, rounded to 12 digits) -> factor_inv: 5.999999999988 (1.0/factor)
which could lead to errors such 12*0.166666666667 = 2.000000000004 instead of 2.0

Slightly changed the way the ORM handles float fields to allow setting `digits=0`
as a way to explicitly require a NUMERIC value but without enforcing/rounding
the values at the ORM level, i.e. a truly full-precision field.

NUMERIC type has unlimited precision but is less efficient so should not be
used as the default behaviour, which is why we keep float8 as an alternative.

Modified the view to display the product UOM factor with a 5 digits value by default.
This value is for usability purpose only, the field still accepts bigger precision, by
setting the `digits` option on the field in the form view.

This change is safe in a stable series, the `digits=0` alternative is
treated the same as the default `digits=None` everywhere in the framework,
except when creating the database field.
[FIX] product.uom: safer handling of factor/factor_inv in UI

Add readonly attribute to avoid sending both factor and factor_inv value to the backend when saving.
This was possible if the user switched between uom_type to fill the two fields.