Added solution to problem 12
Moved the product function from problem 11 to a utils.misc package