Use faster smallest-last ordering algorithm
Use faster smallest-last ordering algorithm

Replace the existing implementation of smallest-last ordering with one
that uses a bucket queue to efficiently determine which node has
minimum degree, so the algorithm is now `O(m+n)` instead of `O(n^2)`.

Update documentation to credit the Matula and Beck algorithm.

Return a `deque` now, which is okay because the caller requires an
iterable return value.

goulu/networkx,jfinkels/networkx