Stop BasketMiddleware overwriting basket in template context

Retains ref to request.basket when it is overridden.
Also comment on why you might want to override the default basket
template binding.

Fixes #716