[CLI] accept empty paths as arguments
[CLI] try to guess the correct kind of store arguments
[CLI] Use the local store for all non-init commands
[CLI] Implement clone

This is part of #8
[CLI] Simplify the declaration of subcommands

Remove most of duplicate and fragile code.
[CLI] implement push/pull

This closes #8
Irmin.contents should also return the contents of the root node
Improve the ouput of 'irmin tree'
Improve the parsing of arguments for 'irmin write'

The following is allowed:

- irmin write /a/b/c foo
- irmin write a/b/c foo
- irmin write / foo
- irmin write foo # ie. / is implicit
[CLI] implement 'irmin snapshot' and 'irmin revert'
Do not create a new revision after an update operation which do nothing