Make database dumps an abstract type.

The goal is to be able to use Git pack file directly.
Replace Ref by Tag in IrminGraph to be consistent with the rest of the API
Initial support for recursive stores

Irmin.Ref(S) generates a new store when values are blocks (ie. values
of the low-level block store). This is not very useful for the end-user,
but that's a necessary first step before being able to store context
in the node (ie. what @dsheets wants) and to be able to support more
esoteric datastructe (ie. what @BFarinier needs).
Merge pull request #58 from samoht/master

More API clean-ups