Use GObject type checking for instance arguments

Add a g_type_is_a check to interface/object instance arguments in addition
to the Python IsInstance check. This loosens restrictions on overrides which
don't use gi.overrides.override() and is needed to keep API compatibility
which broke with commit:
https://git.gnome.org/browse/pygobject/commit/?id=d5925b76

https://bugzilla.gnome.org/show_bug.cgi?id=724009
release 3.11.90
configure.ac: post release version bump to 3.11.91
Update release steps to be more explicit in regards to NEWS

Add an explicit step to commit the NEWS changes and push prior tagging.
Fix Build on Visual Studio

Some items from pygi-enum-marshal.c were moved to pygi-basictype.c, which
included the use of the NAN and INFINITY macros/constants, so the
definitions for those need to be moved to pygi-basictype.c as well.  Also
avoid defining a variable in the middle of the block.

https://bugzilla.gnome.org/show_bug.cgi?id=725122
Use C style comments

Update various locations which use C99 single line comments to conform to
C90 style comments. Found with: make CFLAGS="-std=C90"
Use g_snprintf instead of snprintf

Use g_snprintf for consistency with the rest of gobjectmodule.c
configure.ac: Use -std=c90 and error on declaration-after-statement

Replace gcc option of -std=c9x with c90 and add
-Werror=declaration-after-statement
This ensures we keep compatibility with msvc builds.
tests: Conditionalize usage of regress typelib in test_properties

Unconditional usage of regress breaks tests when PyGObject is built without
cairo.
tests: Conditionalize usage of GTK+ in tests_generictreemodel

This allows running make check without GTK+ installed.
tests: Move class definition depending on GTK+ within function evaluation

Move the definition of WindowWithSizeAllocOverride inside of the test
function call to so it is lazily defined. This avoids problems running tests
on systems without GTK+ installed.
Use ffi_call directly instead of g_callable_info_invoke

Cleanup internal callable cache and state tracking by removing multiple
counting schemes for differently sized "in" and "out" argument arrays.
Use a single count based on the total number of arguments passed to C
(inclusive of instance argument and GError exception where applicable).
Size all state tracking arrays to the same size and ensure argument cache
indices always line up with these arrays. This cleans up logic which was
required by g_callable_info_invoke for splitting "in" and "out" arguments
up.

Cleanup array marshaling which can now rely on the new scheme which ensures
the "arg_values" array always points to the correct location for length
argument values.

Cache the ffi_cif struct in PyGICallableCache via GIFunctionInvoker and
related GI methods. Overall, these changes can give a performance boost of
almost 2x for simple function calls (see ticket for micro benchmarks).

https://bugzilla.gnome.org/show_bug.cgi?id=723642
build: Update release-news to use srcdir

Use $(top_srcdir)/NEWS for pulling in news items to ensure
"make release-news" works in a vpath build environment.
release 3.11.91
configure.ac: post release version bump to 3.11.92
Handle GI_TRANSFER_EVERYTHING for returns of foreign structures

Any (transfer full) return of a cairo type other than a path
was leaked.

Pass the transfer type PyGIArgOverrideFromGIArgumentFunc and handle
it for the cairo foreign type. For paths we can only handle
(transfer full) so throw an error for (transfer none).

https://bugzilla.gnome.org/show_bug.cgi?id=726206
Update Free Software Foundation addresses

Update all references to the FSF physical address
to use the web address: http://www.gnu.org/licenses
docs: Ignore meta-class bases in dynamic docstring generation

Skip attempts at generating a doc string for GObject meta-class bases
since they do not contain an __info__ attribute.
This circumvents errors with documentation generators (Sphinx).
Quote argument names in initializer deprecation warning

Add quotation marks around names of deprecated positional arguments.
This makes the message clearer in stating what has been deprecated
in cases when only a single argument is displayed.
docs: Standardize Python doc strings

Use consistent doc string quotations (three double quotes).
Update usage of GObject.GObject in docs to GObject.Object.
Use reStructuredText markup for parameter annotations, instance variables,
admonitions, and code examples.
This allows for better Sphinx documentation generation for the project.
Preliminary style guide:
https://wiki.gnome.org/Projects/PyGObject/StyleGuide