[IR] Additional cleanup + DRYing of DF analyses

* DRYed out dataflow analyses by moving more identical computation
  into the abstract FlowGraphNode class.

* Got rid of unused/useless TOP/BOTTOM values since every
  analysis has its own notion of TOP/BOTTOM.