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.)
review edits.1
fix ValueError for nP(int, replacement=True)
revew edits.2
add memoize functions that can be used instead of cacheit

Whereas cacheit can be disabled, the memoize functions will always
be active.`
review edits.3
remove memoize functions
review edits.4

remove -k option, but allow k=None which gives sum of all ways to
get combinations, permutations or partitions of all lengths.
edit docstrings
implement signed stirling numbers
correct docstring for use of undigned