Added an abstract checkout stage controller to allow checking at every stage along the way that there are items in the cart that we are checking out. If the cart is found to be empty it redirects back to the cart route.