[IMP] fields: make attribute 'default' callable
[IMP] fields: set the default value to the closest field.default or _defaults

This solves a subtle issue: in the following case, the class Bar should
override the default value set by Foo.  But in practice it was not working,
because _defaults is looked up before field.default.

    class Foo(models.Model):
        _name = 'foo'
        _columns = {
            'foo': fields.char('Foo'),
        }
        _defaults = {
            'foo': "Foo",
        }

    class Bar(models.Model):
        _inherit = 'foo'
        foo = fields.Char(default="Bar")

The change makes field.default and the model's _defaults consistent with each
other.
[IMP] fields: add assertions to check parameters (comodel_name, size, digits)
[ADD] doc: workflow doc from v7+ (saas-5)

I tried starting a better one, but the workflow code is a complete mess so I
have no idea how this thing works without significant study and testing.

Thus, not trying to write a brand new and complete doc, maybe later.
[FIX] barcode_interface: when loading widget, picking_type_id was sometime not correctly set
[IMP] fields: do not copy field objects anymore, but make new instances instead

Because of the parameter overriding mechanism implemented by fields, it is no
longer necessary to copy field objects.  It is even better to no copy them in
the case of related fields.
[IMP] fields: rename attribute 'copyable' into 'copy'
[IMP] doc: add testing reference and improve docstrings
[FIX] web: destroy modal on cross click or escape

Instead of just hidding it
Otherwise, when opening a new dialog, it is considered that there is a previous opened dialog, and this can lead to refresh the record which opened the hidden/previous dialog

This is related to rev. 57b48602fb7afa5d0539e8d0caa8d1e10c3910e5
[FIX] models: in _create() and _write(), mark fields to recompute earlier

An issue occurs when a constraint is checked before computed fields are marked
for recomputation: the constraint will read the field's current value, which
may be wrong.  If the field is marked soon enough, the constraint will trigger
the recomputation and use a correct value.
[IMP] fields: do not force required=True on related fields

This may cause issues if the field is stored: non-null constraint will prevent
saving records when no value is provided.