[FIX] base: do not drop sql constraints during update

When a module is updated, the sql constraints were checked against postgres `pg_get_constraintdef()` method to see if they have diverged from the one defined in python code.

However this check was failing as the syntax returned by `pg_get_constraintdef()` (e.g. `CHECK ((credit * debit) = 0::numeric)`) differs from the one returned by `unify_cons_text` method (e.g. `check(debit*credit = 0)`) so the constraints were always dropped and recomputed.
This adds a definition column on ir.model.constraint (storing original definition) to detect changes.

This will also update the field `date_update` when the definition changes.