Refactor ud-du chain construction.

Move the logic from ReachingDefs to a private builder inside
UseDefDefUseChain, which is now a class instead of an interface.