Support alternative product partials

When browsing, some product classes should be able to use an alternative partial as they may want to render differently.