More elaborate default handling for FileNameOption

- FileNameOption now prefers existing files when completing the default
  basename to a full filename for input options, like t_filenm parsing
  does.
- Add FileNameOptionManager that allows interaction between different
  file-related options.  Use it to add support for -deffnm-like option
  to set a default base name for all FileNameOptions.

To do the above, and make the -deffnm option independent from the
command line order, the default file names are now handled during
Options::finish().  So there are cases when the value returned by a file
name option changes after this call.

Change-Id: I73d3badae5409e9f066f06dec307b2c10ac89bfd