[FIX] account: chart of account opening period selection

If a special period is present, it must be selected fist
Fixes #3946
[IMP] No digits_compute on product_qty of move + rounding on qty_available fields + add float_compare
[FIX] Propate propagated_from_id when reconciling negative quants to the quant that loses it

When a negative quant is created but the positive quant counterpart is reconciling
a negative quant that of course also has a positive counterpart, the latter should eventually
let its field propagated_from_id tell that it originated from the very first negative quant as the
second negative quant will have disappeared through reconciliation.
[IMP] Rounding should be done on move immediately to default UoM and quants should be rounded to the default UoM + remaining_qty

[FIX] Remaining qty should each time be in the default UoM of the product

Even with different UoM we want a consistent matching between moves and pack operations.
When calculating the remaining qty on move/pack operation we always start by converting the
qty on the move/operation to the default UoM and afterwards we subtract the links between them
which will also be in the default UoM of the product.
In order to create backorders / extra moves these quantities are used.
[IMP] Rounding of the UoM should have an unlimited precision
[IMP] When preparing pack operations, use the smallest UoM of the moves if they are smaller than the default UoM. Otherwise use default UoM.

The same is done when extra moves are generated.  It is going to check if the UoM of the operation is smaller if it has one.

Throw an error when a key can not be found in action_done because there were links on a move
that was not supposed to be done (e.g. 0.5 Dozen when Dozen is rounded at 1)

[IMP] Throw an error when a key can not be found because of UoMs/picking + extra float_compare

[IMP] Integrate remarks qdp
[FIX] When creating a procurement from a move, respect the right UoM conversions
[IMP] Add a method half-up for uom conversion in case we want to convert from default UoM to something else + remaining_qty round + default factor on UoM
[FIX] mail: no_auto_thread default True if the model has no mail.thread
[FIX] doc: typos and code samples from howtos

* The dashboard from the backend howto doesn't specify "name" field
  which causes non-null constraint violation.
* Some useful examples uses idea.idea" model which isn't available in
  8.0 so I replaced them with "note.note".

closes #3993
[IMP] Query should pass through orm and as such the refreshes can be removed in the code, which will go faster as it is done automatically by the new api
[FIX] mail: model can be None or uninstalled

This is related to rev. 83b28737e9277d0612211900d49f539bb631dfb6
[ADD] document @default_order in list views

closes #2623
[ADD] pyeval: date.replace method

Needed to create filters like "previous month"

It was just defined for "datetime", but is also needed for "date"

closes #2915
[FIX] base: deleting a view must not delete linked actions
[FIX] product: force empty view_id for action `product_variant_action`
[FIX] http.py: no traceback for SessionExpiredException

Rebase and close #3618
[FIX] Avoid endless loop when doing a return picking
[FIX] stock: compute average price on action_done

The average price computation is now deduplicated and moved to
a separate function called in stock_move action_done.
This makes sure it is always called when a stock.move is
processed, even without going through the partial picking wizard.

Fixes #2991
Closes #3949
OPW-615491
[ADD] purchase: average price computation test