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
exhaustiveexec
consolidate tree functions in tree.py
rename functions in rules.tree
Add leaf keyword to brute and greedy
brute does not expand tuple
remove empty test_util
import reduce from compatibility in doctest
treeapply uses isinstance
reduce -> forloop in treeapply doctest
all results docstring
Merge branch 'master' into rationals-printing-in-code
Merge pull request #1761 from mrocklin/treesearch

Tree strategies
added a recursive doit() call in Sum

This enables the evaluation of nested sums.