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