use AliasMethod for selection
allow picking zeros when that is all that is left (see #1)
remove redundant check
only rebuild AliasMethod upon getting duplicate, imperative version
rewrite pickIndices using recursion
split picking logic from primitives
be smarter about when to rebuild AliasMethod picker

The heuristic takes advantage of O(1) picking as much as possible by only
rebuilding the picker once we got a certain number of duplicates.

64 is chosen very arbitrarily.

Reduces running time from ~9s to ~2s on my machine for the added test.
update docs following fix to #1
don't short-circuit right away if n = size (fix #2)
add weighted-n-of-with-repeats (close #3)
minor reformat in README
minor reformat in README
minor reformat in README