[Promotion] Add FreeProduct promotion

Hi,

Here is my FreeProductAction, that can add a free product to the cart when eligible. (it's actually free _variant_ in the backend)

For the configuration form, I've used a `choice` type instead of `entity` as we don't want to store the full entity in the serialized field `configuration` of PromotionAction model. Not perfect, but simple.

Feedbacks welcomed.