Error handling
Fixes #982 by allowing a user to specify hasnan as a raisable state, e.g.:
with errstate(hasnan='raise'):
table = Table(...)
The default behavior is to ignore as that was the prior implicit behavior.
Support for hasinf was also added. This PR includes also includes some normalization of strings in err.py and an expanded set of tests to assert raise behaviors.
cc @AmandaBirmingham
It's documented here. I'm unsure at the moment why it doesn't appear on the website. To be honest, I think much of the documentation system may have been setup by @gregcaporaso 12-13 years ago, and it could certainly use a refresh. The approach @qiyunzhu has taken with scikit-bio is quite pleasing. @AmandaBirmingham, do you by chance have interest in examining whether some small changes in the documentation system may be viable?