first optimization

TODO:
- deal with orederby
- keep only optimized matching

- test performance
use loop_wh_progress
many improvment in optimized matching
merge with master
Merge branch 'master' of https://github.com/liam2/liam2 into optimized_matching

Conflicts:
	doc/usersguide/source/changes.rst
groupby matching with order
optimized as default funtion
added test for lag(count())
remove clones at the end of test_clone

added an assert in the test too
added test for count(lag(expr))
added failing (commented) test for issue #146
merged PR#144 (optimized matching)
it is too early to have optimized matching by default (tests break)
cleanup/pep8 fixes
killed SDtoM

the code was bogus anyway!

if orderby1_expr == 'SDtOM':
    ...
    order[set1filter] = expr_eval(orderby1_expr, orderby_ctx)
simplify code by inlining methods which are used only once
fix typos and remove SDtoM from doc
killed RankMatching reverse options. Users can simply use "-" their score expr if that is what they want