mksshfp: use uppercase for constants
mksshfp: function for formatting a SSHFP record
authorized_keys.py: add an option to not parse the prefix as options
mksshfp: do not parse the key prefix as option list
authorized_keys.py: add introduction
mksshfp: add usage message
mksshfp: print comments with the key and hash algorithms
treeify: remove unused variable
treeify: add some debug messages to hopefully deconfuse certain bugs

It seems there are problems with inputs starting with './' e.g.:

treeify <<!
./
./bin
./bin/htop
./share
./share/man
./share/man/man1
./share/man/man1/htop.1
./share/applications
./share/applications/htop.desktop
./share/pixmaps
./share/pixmaps/htop.png
!
treeify: skip "." path components

Hopefully this fixes most of the bugs in the previous commit.
treeify: redo split_path() without ugly regexen
treeify: try to fix ghost nodes

...which are currently being marked as real.
treeify: mark fakeroot as ghost as it should be
treeify: add a test input
treeify: no longer show "(empty)" for root nodes

This is confusing if the input has files directly on the root.
treeify: add more debug output
treeify: track existence by node refs, rather than paths

Should have done this long ago. Now it doesn't rely on input and output
paths being the same anymore, because it's /not what we want to check/
in the first place...
treeify: use a variable for $branch->{$item}
treeify: show a "/" for empty path compontents

I'm slowly realizing that it is likely impossible to make this work
properly in both cases (absolute paths and not).
treeify: make it possible to descend down to /