This patch contains changes for multiplication on saturated _Fract types.
Since we already upcast the underlying integer for the fixed point type, we can do a simple check to see if the resulting value is larger or smaller than the max or min for the fixed point types.
This is a child of https://reviews.llvm.org/D46987