7.0 add price propreties based

4 modules

Easing properties input in sale order line
---------------------------------------------------
This modules simplifies the input of properties in the sale order line and
other places.

For instance, in the many2many field 'property_ids', it allows the user to
digit 'width 0.5' and the system will automatically create a property of group
'width' with value '0.5'

It also adds the model 'mrp.property.formula', to be used by computations based
on properties.
Used by modules like 'product_price_properties_based'

Dynamic fields for sale order line properties
-------------------------------------------------------
This module allows to dynamically draw properties groups on sale order lines.
That is, if you have a property group 'Length' and set it as 'Draw dynamically',
the module will automatically add the x_length field to the sale order line and
visualize it as char field in the form view.
When fill the 'Length' field, the module will update the properties field (property_ids)
according to it.
This allows to set the line's properties through normal fields, instead of creating
new properties or selecting existing properties.

Product price properties based
---------------------------------------
This module allows to use python formaulas to compute the sale order line
price.

You can configure the 'Price formula' on the product form using python code.

Formula example:
```
area = float(properties['Width']) * float(properties['Length'])
result = area / 2.0
if 'Painting' in properties:
    result = result + 5
```

When changing properties on sale order line, the system will automatically
compute the line price unit.

Sale line quantity properties based
-------------------------------------------
*This module allows the calculation of the product quantity on the basis of a
formula that considers the properties specified by the user on the sale order
line and on the quantity (UoS).*

Example

Provided the sale of a given number of pieces (shelves), that may be
’x’ meter long and ’y’ meter large, the formula enables the calculation of the
total area sold expressed in square meters:
    10 pcs of (4 m x 0.5 m) shelves = 20 m² of wood

In order to have this function working, it is necessary to have the user
proceeding as follows:

Then s/he shall create properties such as ‘length 4’, ‘width 0.5’.
(Note: this can be more easily achieved by using the modules
'sale_properties_easy_creation' and/or 'sale_properties_dynamic_fields')

Properties must respond the following criteria:
    * Name: ‘length 1’, ‘length 4’, ‘width 0.5’
    * Property Group : either ‘length’ or ‘width’
    * Value : the corresponding quantity (1, 4, 0.5...)

Property 'length 4'
    * Name: ‘length 4’
    * Property Group : ‘length’
    * Value : 4

Property 'width 0.5'
    * Name: ‘width 0.5’
    * Property Group : ‘width’
    * Value : 0.5

After this, the formula 'surface' must be created and associated
to the product:

```
result = float(properties['length']) * float(properties['width']) * qty_uos
```

Upon the registering of the order, the user will apply in the properties field
the desired properties (in this example the ‘lenght 4’ and ‘width 2’), the
needed formula (in this example 'surface') and last the quantity (UoS).
`context` may be None, needs to be checked before accessed