Define a default merge function

This does nothing very useful, but that's the default basic case.
Fix #23

I'm not totally of what I'm doing, but I think that's ok.
Update CHANGES
Add a small combinator library for merge operations (IrminMerge)
Add (broken) unit-tests for merge
Fix the unit-tests for merge

Use a nice combinator fix-point for handling with recursive merge functions (thx @dhseets for suggesting this)
More merge tests
Rename IrminMerge.fix to IrminMerge.apply
Add a failing test for merges

The merge operation for commits needs to be implements
Incremental commit (tests are still broken)
Fix merge tests

Blobs, trees and commits seems now able be merged without (knonw) bugs.
Need to write the high-level API now and plug it to the CLI.
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.
Fix _oasis metadata
Add a (failing) high-level merge test
Fix the graph generation
Fix the high-level merges

All the unit-tests pass again \o/
Fix the example
Merge pull request #31 from samoht/merge

Define a default merge function