Adding `GLOBAL_RNG` to `utils.__init__.py`.
Adding `functions` module to `utils`.

Adding `sample_iter` function to this new file. The function returns a
list of random elements from any iterable.
Updating `sample_iter` function.

Adding to additional arguments: `exclude` and `exclude_attribute`.  The
former is a list of elements to exclude when sampling from the
population, and the latter is the attribute to use to test whether an
element is in the exclusion list. The default for `exclude_attribute` is
`None`, in which case the exclude list is checked for the element
itself.

Adding additional test to `test_functions.py` that test the new
functionality of `sample_iter`.
Updating `seqstats` module.

Adding functions `pairwise_distance_iter` and `sample_distance_iter`,
and updating `distance` function. Adding `per_site` boolean argument to
`distance` function to determine whether the returned sequence distance
should be the total differences or per-site differences.

`pairwise_distance_iter` yields the sequences and their distance (and
"reverse-complement" distance) for every pairwise comparison of
sequences in an iterable of sequences.

`sample_distance_iter` yields the sequences and their distance (and
"reverse-complement" distance) comparing each sequence to a random
sample of size `sample_size` drawn from from the iterable of sequences.
This is intended to provide a distance summary for every sequence for
datasets that are too large for all pairwise comparisons.

Also, starting work on `summarize_distances` function that will use the
new `distance_iter` functions to summarize the distances for a
collection of sequences.

Adding tests to `test_seqstats.py`.