Dominator Trees and the beginning of SSA optimizations

Added skeleton for SSA optimisations
Added working dominator trees, dominance frontiers
Added a new `IRTuple` for Phi functions