This change allows FP options to be in the trailing storage of CastExpr. Needed for proper emitting of uitofp/sitofp later. The implementation is based on BinaryOperator and CallExpr.
THIS IS A WORK IN PROGRESS. I'm opening this now to get feedback on my understanding of how the cast classes are used. I'm not sure I have it correct and would appreciate more knowledgeable eyes on it.
Tests are still needed, Sema needs work, a number of other pieces are missing. Notes to myself need to be removed, etc.
Also, I've included as much context as I could. There's a 2MB limit on patches so I squeeked in under the wire with 1.9MB.
clang-format: please reformat the code