Locate lintel.toml, load the full config, and return the config directory.
Returns (config, config_dir, config_path). When no config is found or
cwd is unavailable the config is default and config_path is None.
Like run_with, but accepts pre-read file contents instead of reading
from disk. Use this when the caller has already read files (e.g. to share
reads between format checking and validation).