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.
One other possibility is to verify `x.ids` and `y.ids` are subsets of `lookup`:

```python
def _remap(ids, lookup):
    if not set(ids).issubset(lookup):
        # complain
    return [lookup[id_] for id_ in ids]

...
    x_ids = _remap(x.ids, lookup)
    y_ids = _remap(y.ids, lookup)
```
    # complain