Allow reading output of external commands to get configurations

This commit allows the user to configure Redshift to run an external command
and read its output to get values for the settings. And it allows for fallback values
if it fails.

For example, changing the line `crtc=crtc-index` in redshift.conf to
```sh
crtc=fallback-crtc-index$(get-crtc-by-edid long-edid-value)
```
will run the command `sh -c "get-crtc-by-edid long-edid-value"` and read its output
and use that for the `crtc` setting. But if `get-crtc-by-edid` is killed by a signal or
exit with a value other than zero, or otherwise cannot be executed successfully,
it with use the value `fallback-crtc-index`.