Uses generic_category instead of system_category.

Some c++ libraries (libstdc++ at least) don't seem to map to the generic
category in in the system_category's default_error_condition.