tests: always use expected_type from mock dbus

Always call dconf_engine_call_handle_get_expected_type() from the mock
dbus backend, even if the handle is NULL.  This matches the behaviour of
the real D-Bus backends and would have caught the bug fixed in the last
commit.
tests: add more engine tests

And fix some leaks in an existing test.
engine: add 'profile' argument to constructor

Allow specifying a profile when calling dconf_engine_new().  This will
allow us to avoid setting/unsetting the DCONF_PROFILE environment in
testcases from contexts where other threads may be reading from the
environment.
tests: stop setting environment variables

Stop setting the DCONF_PROFILE environment variable while threads are
running.  Leave only one case where we set it explicitly to check that
the variable itself is working correctly.
engine: add support for WritabilityNotify

Wire through WritabilityNotify signals from the engine.  This has been
unimplemented for a very long time...
gsettings: handle writability notification

Wire through the writability notifications from the engine to the
correct signals on GSettingsBackend.