[WIP] clean-up the Irmin API

Mainly organize snapshots / branches / dumps / views into their own namespace for clarity.
[WIP] continue to clean-up the API

Although there are many changes in the patch, the external API didn't
change much. But this is needed to have a cleaner higher-level REST
interface, and it add fews key missing merge functions for common
constructs.
[WIP] more work on the external API

looks almost good now ...
[WIP] Continue to clean-up the API

The backends now all share the same kind of interface (this was more
or less already the case, but it's much cleaner now).
[WIP] the core library and the backends compile

Now, just need to debug 17k lines of type error when compiling the
command-line tool (IrminCLI) ...
[WIP] The new API compiles

Now need to fix the tests ...
Fix Tag.list

That code got deleted during the refactoring ...
Fix typo. clone works
Do not loop forever when looking for a non-existing common ancestor
Fix JSON contents
Cosmetic changes
Fix the Git backend tests
Merge pull request #55 from samoht/cleaner-irmin-api

Cleaner irmin api