Injecting the basket into the template context can cause issues

The basket middleware injects the current open basket into the template context, which can cause issues if you are trying to re-use the checkout templates to render a different frozen basket.  Eg a basket that was submitted to a payment gateway.  

Not 100% on the solution.  We should probably only inject the basket if a basket variable is not there already.