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).
Add WC_Cart::get_cart_for_session()
Merge pull request #4182 from thenbrent/is-purchasable-check

Check products are purchasable when restoring cart