message: Fix error handling in Options::Parse
  Moved `if (error.Fail())` to correct place to catch all faulty cases such as
  "unknown or ambiguous option" which was ignored before.
diff: @@ -1436,9 +1436,10 @@ llvm::Expected<Args> Options::Parse(const Args &args,
  } else {
  error.SetErrorStringWithFormat("invalid option with value '%i'", val);
  }
  + }
  +
  if (error.Fail())
  return error.ToError();
  - }
  argv.erase(argv.begin(), argv.begin() + OptionParser::GetOptionIndex());
  return ReconstituteArgsAfterParsing(argv, args);
  