Fulfillment options not updating when items in cart change
Issue Description
A good UX is to allow users to modify the number of items in their cart during checkout. When a user had successfully filled the shipping address and has selected a fulfilment method for a cart, they might want to update the content of the cart right before placing the order.
Currently, when you modify the cart, e.g. increase the quantity of an item, the fulfilment method does not update. This might be a problem in case the fulfilment method quotas are calculated based on the current items in the cart. An example of that would be if there is a 5$ fulfilment method for orders under 99$ and a free shipping fulfilment method for orders above 99$. When The user increases the quantity of the item, the cart total might become more than 99$ and thus the fulfilment quotas have to change.
A solution to this problem is to update the fulfilment options for groups in cart on every change, provided a fulfillment method is already selected for the group. If the previously selected fulfilment method is still applicable after the recalulation, update it, otherwise set it to null, which will force the user to be returned to the fulfillment methods selection part of the checkout.
We can implement this by adding a cart transform method that handles the update of selected fulfilment method if needed and runs on every cart save: https://github.com/reactioncommerce/api-plugin-carts/blob/415ee061a216612bccb1b98739218938003ec299/src/mutations/transformAndValidateCart.js#L41