change rabbit_exchange:route/2's traversal order
from breadth-first to depth-first, thus eliminating the queue
data structure and hence simplifying the code and improving
performance.

Plus a little bit of refactoring in the area.
Merge bug25371