data: Improve serialization of binary data.

Instead of calling strbuf_append() for each byte, precompute the string in a
simple for-loop and then append the result to the buffer. This basically
inlines a formatter specific to this use-case and, thus, should be must
faster.
data: Format binary bytes as \xXX rather than \XX.
data: Double quote formatted date-times.

JSON does not support time values, thus, we need to treat this is a string.
store: Removed sdb_ prefix from private lookup function.
store: Serialize attribute values using sdb_data_format().
store: Split private type definitions into a new header store-private.h.
data: Correctly format NULL values.
data: Escape \ and " in strings when formatting them.
data_test: Use a table-driven test.
data_test: Print type of datum in case of a test failure.
data: Added sdb_data_strlen.

This function provides a worst-case estimate of the number of bytes required
to format a datum as a string.
data: Let sdb_data_format output to a character array.

This is more universally usable.
date_test: Added some simple overflow tests.
data: Let sdb_data_format() return the number of bytes written.
data_test: Compare return values of format() and strlen().

This is to check that sdb_data_strlen() reports sane numbers.
data: Let sdb_data_format() different quoting styles.
store: Added a frame-work for object lookups.

store_lookup currently provides low-level functionality for matching store
objects based on their various attributes.
store: Added sdb_store_clear().

This function clears the entire store removing all entries. It's mostly
useful for testing, I suppose.
store_test: Clear the test after running the test-case.

This removes any cross-dependencies between multiple checks.
store: Fixed data format error detection.