Update Products to support unlimited product types
Revert Product#category to #type