[FIX] sale_layout: store=True is causing trouble when generating invoices from a pos order
[FIX] models: unexpected missing value when checking for a field in cache

At the end of _prefetch_field(), a check is made to ensure that the cache
contains something for the field to prefetch. The check was incorrect because
the cache was checked for a regular value only.
[FIX] models: improve rationale for the management of flag 'recompute' in context

When the context contains 'recompute': False, the recomputation was not even
prepared. Now both create() and write() prepare the recomputation by invoking
method modified(). The flag only controls whether method recompute() is invoked.
In addintion, the former flag 'no_store_function' was converted to the flag
'recompute', so that both create() and write() use the same flag.

Fixes #1456
[FIX] purchase: purchase buttons on product form only for purchase users
[IMP] MRP: improve Bill of Material structure tree view