add chain branching strategy
add chain to imports
factor debug to onaction and write
onaction imports
add sfilter strategy
add nC and nP to combinatorial numbers
new _gen_poly algorithm
add stirling function and nT for partition enumeration
add reduced Stirling numbers of 2nd kind
fix errors and add more tests for coverage.
nT does not take negative argument for n
do not use lowercase in Py 3
better nT routine for integers
better multiset partition counting routine
restore simple multiset_partition counting

When a smart multiset_partitions generating routine is in place
it will be faster than what is here. I'm not aware of any other
way to solve this problem without actually generating the multisets.
Whatever work one does to avoid doing that seems to cost more than
simply generating the partitions of the multiset. The
one exception is in the counting of partitions of length 2 which can
be done very quickly. (There is perhaps some efficiency that can be
obtained for the case when there are only two different elements in the
multiset, e.g. aaabb, but for simplicity I have not included that.)
Issue 3428: Passed tolerance to _real_to_rational if rational=True in nsimplify and implemented it.
issue 3428: fixed trailing whitespace error in test_simplify.py
Issue 3428: Passed tolerance to _real_to_rational if rational=True in nsimplify and implemented it.
issue 3428: fixed trailing whitespace error in test_simplify.py
Refactored code to forbid exceptions