Database: fill the database with Schema.Value.t rather than strings

In particular this means that sets and maps are not automatically serialised
to strings via the 'add_to' and 'remove_from' code. However the wire protocol
still uses s-expressions so the more slaves, the more s-expressions you'll see.
Database: re-add a test for the database library

The library test can be run easily from the build.

The remainder of 'database_test' is really a 'database server test'
which doesn't currently work.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>