Check products are purchasable when restoring cart

If WC_Product::is_purchasable() is only called when adding a product to the cart,
it's possible to purchase products that aren't purchasable (but were when they were
added to the cart).