Remove conky_config from the Lua API

Exporting the filename is just a race condition by design, this file may
not exist (==builtin==), or have been replaced after conky opened it.
Next to that it doesn't seem to add much value to the API anyway.
Open config with fewer races and better checks

The only way to check whether a file is readable without race conditions
(such as TOCTOU) is to actually open and read. Therefore instead of
having a filename as global variable and opening the file as needed, it
is opened when looking for a config and kept open the entire time. The
main benefit is that shell redirection works as a config file (on Linux
these tend to result in a path to the file descriptor, which is a broken
symlink to a pipe, but can be read).

As per posix, a directory can always be open()'ed for reading, but
read()'ing may fail. To distinguish having a useable config vs reading
on a directory, fstat() is called before trying to read.

This only leaves inotify, which requires a filename, but when reloading
the file offset is set to the start, rather than the file being
reopened, so at most this leads to unnecessary reloads.
Replace BUILD_BUILTIN_CONFIG with CONFIG_OUTPUT

Since ba06e0a this define was used, but it was CONFIG_OUTPUT before and
BUILD_BUILTIN_CONFIG would never be defined. This fixes the use of the
builtin config.