Add a higher level merge function.

Irminsule API now exposes a merge function: it takes two commits, looks for the more recent ancestor and do a recursive 3-way merge on the tree. If the merge is succesful, it updates the current branch to point to the merge commit.

The CLI has been modified to merge after a pull.

All the backends now support the merge feature (only the CRUD / HTTP ones needed to be updated though, as they are the only one which do not use the low-level functors).

Remark: this has not been tested at all for now on ... but at least it compile and it does not break the hlow-level unit-tests for merges.