Fixed Python 3 issue with error message decoding
Change __cinit__ to take C reference

Previously, when an new instance of an extension class from the low
level API (or anything subclassing that, like the high-level API
classes) was initialized by copying an existing instance, the new
instance would "borrow" the underlying C value and set _free_on_dealloc
to False.  This could cause confusion, and potentially dangling pointers
(if _free_on_dealloc got set on the new object instead of the old
object).  Now, instead, the old object's C value is simply set to
the equivalent of NULL (one of the GSS_C_NO_X values), and the whole
_free_on_dealloc logic has been removed.