product: validate price

We now validate the price so that it does not have granularity beyond 1
cent. E.g., whereas the price "1.001" was valid before (because it was
greater than 0.01, our only numerical validation), it is now invalid.