Reorganize internals; implement Object.__str__

Eliminate pointer fields in Object subclasses in favor of a single
<c_api.gcc_jit_object *> field within Object, adding _get_c_FOO
and _set_c_FOO methods to the various FOO subclasses to cast them
as needed.

This relies on the various subclasses being castable at the C level
(they are).

Make Struct be a subclass of Type.

Use this to implement Object.__str__ in terms of
gcc_jit_object_get_debug_string.

Also, wrap gcc_jit_context_new_opaque_struct.