Clarify product caching in ProductDetailView

The get_object() caching was slightly confusing. It's been streamlined
and it's usage hopefully is a bit clearer.