With this, FMF(contract) becomes an alternative way to express the request to
contract.
This is handled similarly to ApplyDebugLocation using an RAII to propagate
FPOptions from the BinaryOperator to the IRBuilder. Note that
CompoundAssignOperator (+=) can be an lvalue so it needs to be handled as such
as well.
This is toward fixing PR25721.
Is it necessary to check CXXOperatorCallExpr too here?
Since CXXOperatorCallExpr has an FPFeatures field too, I was wondering how CodeGen was going to use that information.