backup: silence rsync code 24
treeify: remember which paths we actually saw
treeify: use a different color for "ghost" directories
treeify: whitespace
treeify: wrap ghost elements in []
treeify: the / suffix looks ugly here
Merge branch 'treeify-ghost-elements'

If we see a child item but not its parents, walk() automatically creates
them in $tree as needed, but sometimes it is useful to distinguish
between situations where all, just some, or no parents exist.

For example:

    pub
    pub/law/uk
    pub/law/us/dmca
    pub/linux
    pub/linux/drivers
    pub/lit/poets
    pub/lit/quotes

results in:

    pub
     ├─[law]
     │  ├─uk
     │  └─[us]
     │     └─dmca
     ├─linux
     │  └─drivers
     └─[lit]
        ├─poets
        └─quotes