Since `Result` implements
`Termination` (https://doc.rust-lang.org/std/process/trait.Termination.html),
the result of `Command::execute` can be returned from `main` directly.
If an `FF2MpvError` error would be propagated to `main`, it will be
printed using `eprintln` just as before, and the program will terminate
with an appropriate exit code:
https://doc.rust-lang.org/std/process/struct.ExitCode.html#associatedconstant.FAILURE
The only caveat is that `FF2MpvError` has to implement `Debug`, but
instead of deriving it I cheated a bit and re-used the existing
`Display` implementation to preserve the format of the error messages.