EBookBackendSqliteDB: Added e_book_backend_sqlitedb_cursor_compare()

Added an api to compare the cursor with an EContact, this allows
EDataBookCursor to track total / position when the addressbook is
modified without constantly recalculating it with SQLite queries.
EBookBackendSqliteDB: Reset internal locale when get_locale() is called

If get_locale() returns a locale that is not the currently known locale,
then rebuild the ECollator.
EBookBackendSqliteDB: gtk-doc fixup for e_book_backend_sqlitedb_get_locale()
EBookBackendSqliteDB: Cursor API enhancements.

When using the RESET origin, guarantee that both current
and previous cursor states are reset. Same goes for alphabetic
indexes, ensure that both cursor states are set to the new
alphabetic index pointer and not just one of them.
e-book-contacts-types.h: gtk-doc fixup for EBookSortType

The EBookSortType was introduced with the commit entitled:
    "EBookBackendSqliteDB: Adding cursor APIs"
Added EBookCursorOrigin enumeration used in EDataBookCursor and EBookClientCursor apis.
gtk-doc: libebook-contacts-sections.txt - added new enumerations
Adding D-Bus API to create cursors.
Adding D-Bus interface to interact with cursors

New D-Bus interface: org.gnome.evolution.dataserver.AddressBookCursor.xml
Added EDataBookCursor

EDataBookCursor is an abstract class with the mid-level cursor APIs, it
takes care of responding to D-Bus APIs and provides an API which can
be used in Direct Read Access mode but does not implement the actual
cursor state and navigation directly.
Added EDataBookCursorSqlite

EDataBookCursorSqlite is a cursor implementation using EBookBackendSqliteDB
EDataBook: Makefile.am & libedata-book.h

Build and include new cursor classes
EBookBackend: Added new methods for creating and deleting cursors.
EDataBook: Handle D-Bus calls for creating cursors and export new cursors on the bus.
EBookBackendFile: Implement cursors.

  o Implemented EBookBackend.create_cursor() and EBookBackend.delete_cursor()
    methods using the EDataBookCursorSqlite implementation

  o Ensure that all addressbook modifications and revision changes are
    atomic operations, the revision changes happen in the same transactions
    as any other addressbook modification (allowing revision checks to be
    done safely in direct read access mode).
Backported e_weak_ref_new()/e_weak_ref_free()

These will be needed by the EBookClientCursor.
Added EBookClientCursor

The user facing cursor API, deals with calling cursor APIs in DRA mode
and normal modes over D-Bus, handles threading situations, and notifies
of cursor state changes in the caller's main context.
EBookClient: Implemented e_book_client_get_cursor() Sync and Async methods
Added first EBookClientCursor test: test-client-cursor-create.c

This test checks expected failure error codes and expected successfull
cursor creation in Sync / Async and Normal / DRA modes.
Specified UID in test vcards.

This allows us to assume the UID in an added contact which
is useful in some test scenarios.