Add BuxtonArray

BuxtonArray is a dynamically allocated self-managing array, which is
also reusable. We can use the BuxtonArray (made easier via its len
member) to easily deal with lists of BuxtonData's, for instance.

This will primarily be used to easily facilitate the listing of keys
within a given layer in Buxton.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
test: Add test case for BuxtonArray

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

We'll need to install the array header file in order to allow building
of client applications using a BuxtonArray type, so we rename it in
order to identify it as a part of Buxton.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
Begin client-side implementation of buxton_list_keys

All this does so far is enable the client to use the function whilst
in direct mode. The client will be able to obtain a list of all keys
within the given layer.

The "glue" to make this work needs implementing within the backend
modules and then the protocol. These will follow in separate commits.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
libbuxton: Export direct access functions

Eventually this will be built as a separate convenience library, but for
now we need to export these symbols so that direct clients can use these
methods.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
db/gdbm: Implement buxton_list_keys

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