doc/superctl: fix typos with --now
completions: misc updates
superctl: simplify logic for status cmd

Increases line count slightly, but imho this is much more readable than before
superctl: fix status returning status of first service only
completions: add Fish completions
completions/zsh: add completions for "log" subcommand
service: fix closing nil channel
rearrange struct members to conserve memory

These were found with the fieldalinment tool:

        internal/config/config.go:27:20: struct with 224 pointer bytes could be 200
        internal/config/parse.go:29:14: struct with 168 pointer bytes could be 160
        internal/env/env.go:10:15: struct with 32 pointer bytes could be 8
        internal/manager/manager.go:25:14: struct with 88 pointer bytes could be 72
        internal/server/server.go:20:13: struct with 64 pointer bytes could be 40
        internal/service/service.go:24:14: struct with 480 pointer bytes could be 448
        pkg/api/api.go:17:20: struct with 80 pointer bytes could be 56
        pkg/api/api.go:65:20: struct with 16 pointer bytes could be 8
doc/superctl: document log command
cmd/superctl: add --no-pager option to log command

Calls 'cat' on the log to dump it to terminal
cmd/superctl: add "log" subcommand

For sending the given service log to the $PAGER
server: handle CmdLogLocation
manager: add method for getting log file
api: add CmdLogLocation

For fetching a log file
service: store log file path and add extern. method for getting it
manager: initialize with path to log file used by superd

for passing the location along to something else later
cmd/superd: return path to log file from startLogging

this allows using the path later, e.g. when requested by some external

This also moves generating the canonical path to the main func, so we
don't have to pass in a log path and receive the *real* log path from
startLogging, which would be kinda awkward.
service: don't indicate that "retrying" message is an error

This was confusing, imho
internal/log: drop package