Backward compatible variable_product_sync()

To avoid breaking any extensions using `WC_Product_Variable::variable_product_sync()`:

1. Adds new static `WC_Product_Variable::sync()` instead of making `WC_Product_Variable::variable_product_sync()` static
2. Makes the `$product_id` param optional on existing method