Add global value numbering pass

Summary: We currently have a somewhat ad-hoc CSE pass that runs at IR
gen time. We'd like to remove this in favor of a separate, more
formalized pass that runs later. To that end, this diff adds a new
global
value numbering pass based on the RPO version of the algorithm presented
in the Cooper/Simpson '96 paper "SCC-Based Value Numbering".

Reviewed By: @edwinsmith

Differential Revision: D1718396

Signature: t1:1718396:1418418949:d4017969b77056a055e14803fe1894b392855c9a