scmutil: changed revrange to return lazysets for new style revsets

When there is an old style revset or both it will still return a baseset. This
may be changed in later patches.
revset: added __nonzero__ method to lazyset

Now it doesn't have to go through all the set and can return lazily as soon as
it finds one element.
cmdutil: implemented new lazy increasingwindows

Now log can work in a lazy way and get results as soon as they are processed.

Performance Benchmarking:

$ time hg log -l1 -qr "branch(default)"
0:9117c6561b0b

real  0m2.303s
user  0m2.252s
sys 0m0.048s

$ time ./hg log -l1 -qr "branch(default)"
0:9117c6561b0b

real  0m0.238s
user  0m0.199s
sys 0m0.037s