shared: Only update serialize pointer when operation succeeds

Prior to this commit, if a serialize call failed from gdbm, bt-daemon
would crash due to a double free. This commit rectifies the issue by
only updating the pointer when we successfully serialize data.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Convert helloget to new API

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Convert helloset to new API

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Convert hellonotify to new API

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
libbuxton: Handle CHANGED in response_value

Clients may now use response_value(response) to obtain the value
when they recieve a notification for a key change.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Convert timing demo to new API

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
demo: Free data in hello demo callbacks
libbuxton: Initialize key to NULL
build: fix distcheck-specific errors

- Distribute buxtonclient.h, needed by libbuxton-shared.

- Add the new script, check_db_clean, to EXTRA_DIST. The other tests are
  compiled, so Automake is capable of performing the necessary magic to
  distribute those sources.
cli: Set type of value from get
cli: Use standalone BuxtonClient for client open
shared: Add _BuxtonKey to notify_value struct

In order to avoid reconstructing the key used in a client's request, store
a copy of the key from the client at message transmission time.

This just adds the store and does not use it yet, it also doesn't copy the
key yet either.
shared: Copy _BuxtonKey from client for callback

Put a copy of _BuxtonKey data in the notify_value struct. Add utility
functions to copy and free _BuxtonKeys.
shared: Add _BuxtonKey to _BuxtonResponse
libbuxton: Return the key used by the client in response_key

Instead of trying to build parts of the key passed back from the daemon
return a copy of the key from the original client request.
cli: Add case for status failure
Update todo
cli: Don't free value pointer if type is STRING
direct: improve Smack checks for set_value

The group check is still missing, so I added a FIXME there, and left a
dummy Smack check in its place for now.

This should restore the checking logic to the previous state, adapted to
the new API.
test: fix tests that were broken on Smack-enabled systems

For daemon tests that do not use check_bt_daemon, the client Smack
labels need to be initialized.