server: irminsule interface: replace the pair of mvars with threads

Previously we decoupled the main server from the backend by using
RPC over a pair of mvars. It's simpler just to parse the cmdline
arguments and create the appropriate backend, and then Lwt.wakeup
a pair of threads everyone else just waits for.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
server: reload the store contents from irminsule on startup

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
server: persist full node 'contents' (via sexplib), not just values

This includes the creator domid and the ACLs.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
server: simplify the store loading logic

We sort the irminsule keys into ascending key length order, this
means that we will always create parent nodes before creating
children.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Merge pull request #35 from djs55/irminsule

Persist the store itself