core: Use correct relation URI for next/previous feed links

GDataLink enforces that all relations are proper URIs, prefixing
iana.org to those which aren’t — so we need to do the same when calling
gdata_feed_look_up_link().

https://bugzilla.gnome.org/show_bug.cgi?id=741345
core: Eliminate unnecessary is_async argument from parser functions

Instead, use g_main_context_invoke(), which guarantees to call the
callback synchronously if the GMainContext is owned, and in an idle
callback otherwise. This is exactly what we want for implementing
callbacks which could come from this thread or a worker thread.

https://bugzilla.gnome.org/show_bug.cgi?id=741345
core: Virtualise feed parsing in GDataService

Split the bulk of feed parsing out into a virtual method on
GDataService. This will allow subclasses of GDataService to implement
service-specific tweaks to feed parsing, which is required for
pagination handling with Google Documents.

New API:
 • GDataServiceClass.parse_feed

This does not break ABI — it consumes one of the struct’s expansion
slots.

https://bugzilla.gnome.org/show_bug.cgi?id=741345
core: Allow the GDataFeed type to be passed to _gdata_feed_new()

This will be used internally later to support constructing custom empty
feeds for pagination purposes.

https://bugzilla.gnome.org/show_bug.cgi?id=741345
core: Explicitly support a final page in GDataQuery pagination

The pagination model previously used by GDataQuery was to assume that
the server would return an empty GDataFeed once the final page was
passed by calling gdata_query_next_page().

Unfortunately, the Google Documents servers don’t do that — instead,
they provide a next page URI in each GDataFeed, and don’t provide one on
the final page. GDataQuery did not support this kind of explicit
knowledge about the current page being the final one.

Add support for it with a delightful set of hacky internal functions.
Return a dummy empty feed from GDataService if passed a GDataQuery which
is flagged as having reached the end of its pagination.

https://bugzilla.gnome.org/show_bug.cgi?id=741345
documents: Handle final page pagination in GDataDocumentsService

The Google Documents servers always return a next page URI in a
GDataFeed unless on the final page of results, in which case no URI is
returned. Pass that information through to the GDataQuery so that
pagination works correctly for Google Documents.

https://bugzilla.gnome.org/show_bug.cgi?id=741345