- check that sprite metrics are within the bounds of the sprite. fix#714
- make sprite metrics problems Errors instead of Warnings
- check for negative image width, height
* Standardize on std::exception_ptr as the error representation
(fixes#2854).
* Don't format textual strings at the error source; pass on the
constituent data via observer method parameters instead.
* Use the null object pattern to simplify observer notification code.
* Further refactoring for ResourceLoading tests.