Add degree_offset option to heurisch(), for testing diff degree bounds

See issue 2606

Conflicts:
	sympy/integrals/heurisch.py
Fix a logically incorrect example in the expand() docstring

The docstring was supposed to describe how to disable the log hint, which is
applied before the mul hint, but it instead showed how to disable the mul
hint, which does nothing in this case.
Expanding doc for partial fraction decomposition
set full=True in the example
add examples show the difference between with and without setting full=True
delete a useless example
minimize strategy
treeseach
stratdict persists down treesearch calls
rename stratdict -> join
textual example in treesimp
objective keyword for treesearch
docstring for treesearch
separate treesearch to treeexec and greedyexec

Also expand docstrings
treeexec no longer assumes leaves are functions
remove strategies from treeexec
move treeexec to util
treeexec allows special 'leaf' input
leaf is a keyword
allexec