Various improvements to skbio.stats.distance.mantel/pwmantel functions

Various improvements to `skbio.stats.distance.mantel` and `skbio.stats.distance.pwmantel`, including:

- addition of `strict` and `lookup` optional parameters in `mantel` (these were previously only available in `pwmantel`)
- reordering/filtering of `DistanceMatrix` inputs to `mantel` (previously only available in `pwmantel`)
- support for `array_like` input to `pwmantel` (now consistent with `mantel`)
- new and expanded doctest examples for `mantel` and `pwmantel`
- refactored and more extensive unit testing for both functions

See the changelog for more details.

Fixes #443.
What do you think about having this check at the top of the method as it is for input sanity? eg:

```python
if x.__class__ != y.__class__:
    raise TypeError(...)
```