Add buxton_data_copy to perform deep copy of BuxtonData

This required us to go back to using a BuxtonData in the parameters
of get_value, ensuring we deal with a BuxtonData by reference.
Rationale is simple, we cannot return an internal member from the gdbm
backend, and leave the responsibility on the client to free the
internal member.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>