Updating `PlotGrid` class.

Updating `set_shared_y_limits` method of `PlotGrid` to allow sharing of
y-axis scale `by_row` of the grid of plots. This entailed adding an
optional `plots` argument (which default to all subplots of the
instance) to the `get_widest_y_limits` method.

In order for the `by_row` option of `set_shared_y_limits` to work,
the instance's `share_y` attribute needs to be `False`.
Adding partition combinatoric functions and methods

Adding methods to `Partition` class for calculating the total number of
unique partitions (i.e., the Bell number), and the total number of
unique partitoins into `k` subsets (i.e., the Stirling number of the 2nd
kind).

These methods use the new functions of the `stats` module, `stirling1`
and `stirling2`, which calculate the Stirling numbers using generator
functions `stirling1_row` and `stirling2_row`, which yield rows of
Stirling numbers.

Associated tests of new `Partition` methods added to `test_stats.py`.