Port subsample_multinomial from pycogent

Improved its unit tests, as the previous ones also worked for subsampling without replacement. Combined multinomial subsampling with the subsample function as the functions shared a fair amount of code, and both are pretty short. Kept ``subsample_multinomial``, which is now a simple wrapper.
Less type conversions, shorter code, minor speedup

Thanks @ElDeveloper!
Remove nonzero usage from multinomial branch

Turns out this was unnecessary. Thanks for catching this @Jorge-C!
Remove subsample_multinomial wrapper

Thanks for suggesting `partial`, @Jorge-C!
`multinomial` optional parameter is now `replace`
update test code comment for clarity

Based on @Jorge-C's suggestions
update test code to use set instead of dict

Much clearer- thanks @Jorge-C!
Remove use of np.true_divide

This was redundant. Thanks @ElDeveloper!
Disallow n > counts.sum()

subsampling with replacement now works as expected when n == counts.sum().

Thanks for the input @rob-knight and @gregcaporaso!
Merge pull request #206 from ElBrogrammer/sub-multi

Port subsample_multinomial from pycogent