[IMP] refactoring: move function topological_sort to openerp.tools
[FIX] models: default_get() used to miss values

The default values are computed by evaluating fields on a new record. The fix
retrieves values from the cache earlier, because in some cases, the evaluation
of a field invalidates a formerly evaluated field.
[FIX] base: tests: move test menu under correct root
[IMP] api: improve documentation of decorators constrains, depends, onchange
[IMP] sale_stock: do not verify inventory for non-stockable products (sale.order.line onchange)
[FIX] fields: generalize inverse_field to a list of inverse fields

Some many2one fields happen to have several corresponding one2many fields,
typically with different domains. It is also the case for the field 'res_id' of
mail.message, where each model inheriting from mail.thread defines a one2many
based on that field. The fix ensures that when a relational field is updated,
all its inverse fields are invalidated.