Make error codes returned non-opaque

Publicly define the error codes returned from the various public API
functions. The error codes are defined in the amqp_status_enum and are
all negative in value to work with functions that return positive
values.

OS and SSL specific codes are no longer munged into the error code, as
it is unlikely for that information to be useful to library users,
though there might be useful while debugging the library to retrieve the
internal error codes. We'll punt on that.