Add procedural versions of ANOSIM and PERMANOVA

Changes (see changelog for more details):

- Added ``skbio.stats.distance.anosim`` and ``skbio.stats.distance.permanova`` functions, which replace the ``skbio.stats.distance.ANOSIM`` and ``skbio.stats.distance.PERMANOVA`` classes. These new functions provide simpler procedural interfaces to running these statistical methods. They also provide more convenient access to results by returning a ``pandas.Series`` instead of a ``CategoricalStatsResults`` object. These functions have more extensive documentation than their previous versions.

- Deprecated ``skbio.stats.p_value_to_str``. Permutation-based p-values in scikit-bio are calculated as ``(num_extreme + 1) / (num_permutations + 1)``, so it is impossible to obtain a p-value of zero. This function historically existed for correcting the number of digits displayed when obtaining a p-value of zero.

- Deprecated ``skbio.stats.distance.ANOSIM`` and ``skbio.stats.distance.PERMANOVA`` in favor of ``skbio.stats.distance.anosim`` and ``skbio.stats.distance.permanova``, respectively.

- Deprecated ``skbio.stats.distance.CategoricalStatsResults`` in favor of using ``pandas.Series`` to store statistical method results. ``anosim`` and ``permanova`` return ``pandas.Series`` instead of ``CategoricalStatsResults``.

- The ``pandas.DataFrame`` returned by ``skbio.stats.distance.pwmantel`` now stores p-values as floats and does not convert them to strings with a specific number of digits. p-values that were previously stored as "N/A" are now stored as ``np.nan`` for consistency with other statistical methods in scikit-bio.

Note: Most of the "new" code already existed and has been refactored with minor changes. I verified that performance hasn't degraded.

Fixes #754.
I think the current wording more directly describes ANOSIM's intent. It's true that the underlying method is comparing *within* and *between* distances, but at a high level it is testing for differences in two or more groups of objects (e.g., as defined by a categorical variable in a DataFrame). I think this is what most users will intuitively understand, e.g., "I have grouped my samples into three treatments in my study".

In R's `vegan` package, they use the following description:

```
Analysis of similarities (ANOSIM) provides a way to test
statistically whether there is a significant difference between
two or more groups of sampling units.
```

I chose to use *groups of objects* because we use this nomenclature in the rest of `skbio.stats.distance` (e.g., in the `DistanceMatrix` docs) instead of *samples*.

Would it be helpful if I added an example to the text? e.g., something like:

*Analysis of Similarities (ANOSIM) is a non-parametric method that tests whether two or more groups of objects (e.g., samples) are significantly different based on a categorical factor.*