Simplify width inference to reduce the opportunity to make mistakes.

Simplify depth-first search (Driver.idfs) abd use it for width-related
graph walking.
Merge pull request #336 from ucb-bar/noisyreversewidth325

Simplify width inference to reduce the opportunity to make mistakes - fix #325