Removed drawing_exception and replaced it with std::system_error. Created io2d_error_category class derived from std::error_category. Renamed status enum class to io2d_error. System now retains original, implementation-specific error codes while also providing the io2d_error value for portability. This design also allows for the possible introduction of a parallel, noexcept API if there is sufficient demand for it (adding io2d_error_category& params to any function that could throw in the parallel (current) exception API).