Add LVFolder to simplify GEP x, 0 -> x. Further simplifications will
follow in later patches. The goal of the folder is to remove some
obviously redundant instructions, to generate more compact IR, which in
turn should make the tests easier to read.
At the moment, new folders would need to implement the whole interface.
To avoid that, update ConstantFolder to allow sub-classes.
Note that using the more powerful InstSimplifyFolder does not work,
because it requires the input IR to be in a valid state.
There are a few remaining tests to update.
Any reason to base this on ConstantFolder rather than TargetFolder?