Add generic DataFlowAnalysis and reimplement constant folding on top of it
Merge branch 'Kha/dataflow'