revset: added sort methods to generatorsets

Method needed to propagate sort calls amongst lazy structures.
The generated list (stored in the object) is sorted.

If the generated list did not contain all elements from the generator, we
take care of that before sorting the list.

--HG--
extra : rebase_source : ca9c6abfa0fbca2d4ad930b36c2843813019bf97
cmdutil: changed walkchangerevs to use spanset instead of baseset

Using a spanset takes almost no memory at all. A baseset builds the entire
list in memory and is much slower for methods like __contains__.

--HG--
extra : rebase_source : e270d9399a6d5228707b6c44cf33eda1dbc0c313
revset: made generatorset a private class

This class are not supposed to be used outside revset.py since it only
wraps content that is used by baseset typed classes.

It only gets created by revset operations or private methods.

--HG--
extra : rebase_source : 862aa6c207a85bc89a56c4bb3e32101828cbfc2b
revset: made ascgeneratorset a private class

This class is not supposed to be used outside revset.py since it only
wraps content that is used by baseset typed classes.

It only gets created by revset operations or private methods.

--HG--
extra : rebase_source : 284f60bc7735487b55944615a373e43517b5466e
revset: made descgeneratorset a private class

This class is not supposed to be used outside revset.py since it only
wraps content that is used by baseset typed classes.

It only gets created by revset operations or private methods.

--HG--
extra : rebase_source : eed439b9fa24c58133dad5cd9c399abc0bb9176e
revset: made addset a private class

This class is not supposed to be used outside revset.py since it only
wraps content that is used by baseset typed classes.

It only gets created by revset operations or private methods.

--HG--
extra : rebase_source : b5c80b611666aceab20252db16ec1d91679bb781
revsets: backout d04aac468bf4 due to performance regressions

--HG--
extra : rebase_source : 5c1346070541b1e2bf632cc7f7b0ee8bb37c74ba
merge with default