Add _new_from_bytes() and _read_pixels() API, handle read-only pixbufs

GdkPixbuf is an old API that predates introspection and GBytes.  It
has some confusion around whether or not pixbuf data is mutable or
not.  The _new_from_data() API takes a *const* pointer, but it's not
copied, and _get_pixels() returns a non-const copy of the same
pointer.

There are several cases where we get read-only data, such as a
GResource.  For language bindings, _new_from_data() doesn't work
because the array may be a temporary copy only allocated for the call.

In order to support a clean _new_from_bytes() API, we need to add the
concept of a read-only pixbuf into the core.  The fundamental hack
here is that _get_pixels() now causes an implicit copy.

For the cases where we don't want to copy, add a new
gdk_pixbuf_read_pixels() that returns a proper const pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=732297
Add gdk_pixbuf_read_pixel_bytes()

This can be convenient for language bindings to access the readonly
data in a form that includes length, and also avoids a copy (for
readonly pixbufs).

https://bugzilla.gnome.org/show_bug.cgi?id=732297
Bump version to 2.31

New API requires a version bump.
Add an index for 2.32 api