[RFC] Add higher level operations in FIR

As you may know, there are still a few TODOs left in F95, mainly related to array and character assignments lowering. I took this opportunity to take a step back and come up with some new higher level FIR operations that I think would simplify lowering and also make pattern matching of high level concepts (like array and character assignment and character ) easier.

I wrote all that down in a document that I sent for review on Phabricator: ⚙ D134285 [flang][RFC] Adding higher level FIR ops to ease expression lowering.
Feel free to join the review.


FYI, I am slightly changing one of the concept around HLFIR variables in ⚙ D137634 [flang][RFC] Do not rely on attributes to tag HLFIR variable uses after experimenting a bit.