Use __del__ to explicitly unref held contexts

Replace usage of cairo_destroy as the destructor for ffi.gc
with an explicit call to it in __del__. This is needed because
contexts created with _from_pointer based on other cffi based
pointers will not call the destructor leaving a hanging context
ref.
Initial add using cffi for CAPI