Add initial implementation of OrdinationResults.plot

Currently only supports plotting numeric metadata, and there are a large number of todos scattered throughout the code.
Update plot method to return figure
Add several input error checks to plot method
Add cmap option
Add support for plotting categorical data

Code still needs cleanup and support for a legend.
Add legend support for categorical data
Move categorical legend plotting code to private method
Refactored rest of plotting code into private methods

Also renamed several variables for clarity.
Use functools.partial for scatter plotting calls
Add unit tests for _validate_plot_axes
Add unit test for _plot_categorical_legend
Add tests for _get_plot_point_colors with invalid input
Add _get_plot_point_colors test for numeric column
Add unit tests for categorical column in _get_plot_point_colors
Add tests for public plot method

Also refactored a bit of the unit test code.
fix pep8/flake8 errors
Add docstring to plot method
Add note to plot docstring about why the legend is cut off
Add docstrings and comments to private plotting methods
Update beta diversity docstring to use new plotting method

Also add a changelog mention.