Ensure we return false if no field exists

If the datum's dptr is set to 0 this means that the requested field
doesn't actually exist in the database, i.e. no such key.

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

Before we added any support for the additional data formats, we were
running into the risk of massive code duplication. set and get have
all been condensed into generic get_value and set_value methods.

The following commit will add support for the remaining types

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
Implement boolean modification in CLI

These are now going to go in as individual commits for easier review

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
Implement float modification in CLI

Also a slight fix to int handling to ensure we print a newline

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
Implement modification of doubles in CLI

Also move order of c_*_int in command list so items appear in the order
that they are initialised.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>
Implement long modification in CLI

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

This commit makes the CLI a little friendlier by informing the user they've
requested one type of key, and giving the string representation of the key
they really wanted.

We could of course make get_value handle all types without needing a requested
type, but this is not good for anyone interfacing with buxton via the CLI.
With these changes the user is forced to use the correct type, so that they're
aware of its type before modifying it.

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

This will probably need a bit more testing but at the moment we just need
to flesh it out.

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

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