[InstCombine] Split the FP constant shrinking code out of lookThroughFPExtensions and turn it into a helper function that returns nullptr on failure.
Currently this code's control flow very much assumes that there are no meaningful checks after determining that it's a ConstantFP. So whenever it wants to stop it just does "return V".
This patch just moves all the code into a helper function and returns nullptr when it wants to stop.
I've split this from D43774 while I try to figure out how to best handle the vector case there. But this change by itself at least seemed like a readability improvement.
Since we're going to fix this: a loop is unnecessary here AFAIK. isEliminableCastPair() would always squash those?