Control product batches.

This is the begining of the batch implementation. This adds the domain for
the batches, and updates the stock movement api:

Product that have batches require that the batch is informed when calling
Storable.increase/decrease_stock()

It is also required when calling add_sellable() from Sale, Loan,
StockDecrease, etc...

Change-Id: I2c622f4b9cea4608288eb616df0befc09bf6453e