Add getter for containing BB of Instruction

Also make the field BB private
Set the containing BB before performing CSE

This is desirable since that information can be used during CSE.
Implement CSE for load instructions

This is maybe a little more conservative than it needs to be, it only
operates within the same basic block. This is because there could be
stores in a basic block that is not dominating, but does come before the
containing basic block in the CFG.