Assign request headers to Payment on checkout

This might come in handy for some gateways, e.g. Adyen, actions that require
data such as user agent and accept header to create user profiles. Previously
we had no way to access the request headers from within a gateway class.
Master should be made out of stock when its variants are created. Fixes #3767
fix failing specs for #3767, make sure the master product factory starts with some stock on hand.
fixed duplicated rows id's and name when selecting properties from prototype

Fixes #4155