set only the num key

* non-file buffers do not need the `head` and `tail` keys
* `label` is always set anyway
* `hilite` is set in the next line
don’t trigger an exception when buffer name is directory
make directory buffers obvious
prune tab keys and reduce code duplication
defer rendering the tab label until needed
don’t shorten empty path heads