Product::average_rating now has optional arg for decimal places

the default is now 1 decimal place instead of 2

other changes:
- uses db's AVG function if available
- returns undef if there are no reviews for the prod