new method "add" for CommitDir

adding a method "add" to vfs.CommitDir to add unreferenced commits to the VFS
(f.e. commits resulting from "bup save -c")
Basically this exposes the loop-body from _mksubs to the public.

Add method "addCommit" to RefList proxying to CommitDir.add

Signed-off-by: Tim Riemenschneider <git@tim-riemenschneider.de>
add option "commit" to bup-restore to specify additional commits

these could be commits resulting from "bup save -c".

Using this, one is actually able to restore these commits using
a command-line like:
 bup restore --commit 12345678 .commit/12/
(This patch also includes a dummy metadata_file-method in vfs.Node,
to be able to specify a CommitDir like above)
Commit-ids can be abbreviated, as long as they are unambiguous.
(Ie. if "git rev-parse" can resolve them, they can be used)

The "--commit" parameter can be repeated.

Signed-off-by: Tim Riemenschneider <git@tim-riemenschneider.de>
add option "--commit" to "bup fuse" and "bup ftp"

allows to browse commits created with "bup save -c"

Signed-off-by: Tim Riemenschneider <git@tim-riemenschneider.de>
new command bup-lscommit

This command can be used to list the contents of a (possibly unreferenced) commit
(like those frome "bup save -c")

"bup lscommit XXXXXX path/to/dir" is equivalent to
"bup ls .commit/XX/XXXX.../path/to/dir" for reverenced commits
(and "bup lscommit XXXXXX" to "bup ls .commit/XX/XXXX...")

(Actually, the parameter can also be a tree-id, like those from "bup save -t")

Signed-off-by: Tim Riemenschneider <git@tim-riemenschneider.de>
List unreferenced commits by date

This patch lists the unreferenced commits (added by RefList.addCommit)
in a 'unreferenced' directory by commit date.
This is similar to a branch (BranchList-class), with two exceptions:
- these commits are (probably) unrelated (they have no parent-child-relationship with each
other)
- therefor there is no "latest" link

Signed-off-by: Tim Riemenschneider <git@tim-riemenschneider.de>