Docs: Changed can not to cannot.

This is a backport from the glib commit 30fdc1a79938540af7bad0af68d0a3b8af14f117
Support creating a GvdbReader from data

This is needed for the glib resource work.
builder: Note don't actually implement bloom filters
service: Drop a level of variant wrapping

Internally, the service was passing around GVariant values with an extra
layer of variant wrapping (ie: how we received them off the wire).

Stop doing that because it's pointless.
common/: create two convenience libraries

One -fPIC and one without.

This is done instead of pulling the various source files from other
Makefiles.
Add DConfChangeset utility class to common/
service: introduce a new Changeset-based method

Add a "Change" method to the service for writing DConfChangesets.
Add a README
Add a HACKING
Massively reorganise the client-side

This commit represents a rather complete rethinking of DConfEngine.

  - the different kinds of sources are now properly abstracted.  This
    will make landing NFS support substantially easier.

  - there is now substantially more internal documentation

  - DConfEngineMessage is gone and replaced with ordinary function calls
    to be implemented by the D-Bus glue code

  - the GDBus glue has been factored out and is now shared between the
    client library and GSettings

  - the "outstanding" queue logic from the GSettings backend is now in
    the engine

  - all changes now go through a single API that accepts a (new)
    DConfChangeset object.  Currently this only supports the current
    operations (ie: setting and resetting).  In the future this object
    will also support the directory operations required by GSettingsList
    and will be the basis for the new approach to implementing the
    'delayed' GSettingsBackend (which will be the method by which those
    two concepts can co-exist).

The (internal) API of the engine changed substantially.  This caused the
following:

  - the libdconf client library has been rewritten in C.  Most of the
    complicated aspects of it (that made it more convenience to use
    Vala) are now gone.

  - during the rewrite of libdconf, the DConfClient API changed a bit to
    look more like a proper GObject.  It now makes GIO-style use of
    thread-default main contexts and uses GObject signals for
    notifications (instead of hand-rolled callbacks).

  - the GSettings backend has been substantially simplified (the
    "outstanding" logic is gone).  No externally-visible changes.

  - the dbus-1 backend has taken a copy of the old engine code for now
    until it can be ported to the new engine and sufficiently tested.
    No externally-visible changes.

  - the dconf commandline tool and dconf-editor required minor changes
    to adjust to the DConfClient API changes

There is a substantial amount of cleaning up and finishing of work to be
done.  There are many stubs remaining.  There are likely still a large
number of bugs.
Implement change signals

Support receiving and properly exposing change notifications.

This required some changes to improve the thread-safety of destroying a
DConfEngine.

It is possible that a signal would be arriving (in the worker thread) at
the exact instant that a DConfEngine was being destroyed (from the
finalize of the DConfClient or DConfSettingsBackend).  This could lead
to the object being accessed after it was finalized.

We can avoid this by using weak references and by being more careful
about when the DConfEngine is freed (by taking a ref to it in the signal
handler and releasing it when done).
gvdb-reader: correct whitespace damage
gvdb-reader: refuse to open file with small header

Clean up the logic for dealing with invalid headers and include the case
where the file is too small to contain a fully-formed header.
more whitespace fixes
Merge remote-tracking branch 'gvdb/master' into wip/reorg
add gtester support
Add support for measuring testcase coverage

You need to ./configure with --enable-gcov and then type 'make lcov'.

HTML report goes into ./lcov-html/index.html
DConfChangeset: remove some debug stdout noise
.gitignore for common/, gdbus/ and engine/
GDBus backend: only write to error if non-NULL

Convention says GError ** can be NULL, so we better check for that.