Get an option value for a given section.
If `vars` is provided, it must be a dictionary. The option is looked up
in `vars` (if provided), `section`, and in `DEFAULTSECT` in that order.
If the key is not found and `fallback` is provided, it is used as
a fallback value. `None` can be provided as a `fallback` value.
If interpolation is enabled and the optional argument `raw` is False,
all interpolations are expanded in the return values.
Arguments `raw`, `vars`, and `fallback` are keyword only.
The section DEFAULT is special.
3.2: Arguments raw, vars and fallback are keyword only to protect users from trying to use the third argument as the fallback fallback (especially when using the mapping protocol).