Begin implementing gdbm backend

Using set-value should now operate cleanly, however we're limited right
now to named layers, this should be switched for layer struct's as keys
in our _resources hashmap.

Before we continue to implement the get_value code, we should add
a copy method to copy a BuxtonData (instead of returning internal
pointers) and modify the backend loading code so that we have
global references to our d_func pointers, enabling us to test the
backends more accurately.

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