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.
Done!  I'm not interested in dealing with mainline python, but you can be my guest!