Adding methods to `Partition` and `IntegerPartition`.

Adding `dirichlet_process_prior_probability` method to `Partition`
class, which returns the prior probability of the partition under a
Dirichlet process.

Adding `integer_partition_uniform_prior_probability` to `Partition`
class, which returns the prior probability of the partition under a
prior that is uniform over integer partitions.

Adding `dirichlet_process_draw` method to `Partition` class for
generating a random partition under a Dirichlet process.

Adding `uniform_prior_probability` method to `IntegerPartition` class,
which returns the prior probability of the integer partition (or any
integer partition with a specified `num_elements`) under a prior that is
uniform over integer partitions.

Also adding to `IntegerPartition` several class methods:
`cumulative_number_of_int_partitions_by_k`,
`number_of_int_partitions_by_k`,
`cumulative_frequency_of_int_partitions_by_k`,
`frequency_of_int_partitions_by_k`, and `number_of_int_partitions`.  All
of these methods summarize the number (or relative probability) of
integer partitions given the number of elements. The "by_k" methods
break down the number of integer partitions for each possible number of
classes (either cumulatively or not).

Adding associated tests of all these new methods to `test_stats.py`.