Handle test warnings

Addresses #1182.  

- Adds `test_setup` and `test_teardown` functions in `skimage._shared.testing` to control the test environment, which is called from each test folder in its `__init__.py`.    
- The `test_setup` function imports packages known to raise warnings on import, then sets `warnings.simplefilter('error`) to raise errors for warnings.
- The `test_teardown` removes the filter, allowing doctests to raise warnings.  It was deemed unwise to skip large swaths of doctests just because they were raising warnings.   
- An attempt was made to get a majority of the doctests to not raise errors, by not removing the warning filter in  `test_teardown`.  This technique could be used in future improvement endeavours. 
- Also adds a function `expected_warnings` in `skimage._shared._warnings` that allows us to flexibly mark tests for any combination of expected warnings, instead of them causing errors.
I don't feel strongly about this, but, why camel case?