shared: remove pointless checks in auto-cleanup functions

The argument given to the __attribute__((cleanup)) functions is the
address of the variable that's going out of scope. It cannot be NULL.
The "if (!s)" check in set_freep() is pointless.

Perhaps "if (!*s)" was intented. But that's pointless too, because
set_free()/set_free_free() are OK to call with a NULL argument (just
like free()).

Setting "*s = NULL" is pointless, because the variable that s points
to is about to go out of scope.

The same holds for strv_freep().
shared: inline trivial auto-cleanup functions
path: avoid an allocation in path_spec_watch

No need for strdup. We can slice the path in place if we always undo it
afterwards.
util: fix printing of welcome message

Commit 984a2be4 failed to adjust this caller of status_printf().