Fixed cmdline parsing errors on some platforms.

Using fs::path directly with boost program_options was apparently
not a good idea. They seem to interact badly in some setups.
Instead, we parse the option into an std::string, and then only
convert it to an fs::path.