Switch rand() for Categorical and Multinomial to an alias table

Alias tables slow down the creation of new
distribution objects, but they make rand()
calls only require O(1) operations to complete
instead of O(N). For a Multinomial distribution
with 1,000,000 outcomes, I see a 5000x speedup
for rand() calls.