Split products.hpp and product_mixture.hpp out of product_model.hpp