Revert "Remove old-style OnFailure callbacks"

This reverts commit 1a290e4495c8132e7ff2c44d78de5e1d7eefdb9e.

Reason for revert: Breaks downstream project.

Original change's description:
> Remove old-style OnFailure callbacks
> 
> Also delete default implementation of new-style OnFailure,
> since it can't call the deprecated function.
> 
> Deprecating the old-style OnFailure callback turned out to be impossible,
> since one can't have the new-style callback call the old-style one.
> 
> Bug: chromium:589455
> Change-Id: Icf529ddb02d99ad9e205095d5a1fbeb0da91dd0e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146219
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30570}

TBR=steveanton@webrtc.org,kwiberg@webrtc.org,hta@webrtc.org

Change-Id: Ibc46b7a7294fb906f848e4528a85c09cbb62b913
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:589455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168920
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30573}
diff --git a/api/jsep.h b/api/jsep.h
index cf8aeb0..86f4162 100644
--- a/api/jsep.h
+++ b/api/jsep.h
@@ -28,7 +28,6 @@
 
 #include "absl/types/optional.h"
 #include "api/rtc_error.h"
-#include "rtc_base/deprecation.h"
 #include "rtc_base/ref_count.h"
 #include "rtc_base/system/rtc_export.h"
 
@@ -223,9 +222,11 @@
   // error code and a string.
   // RTCError is non-copyable, so it must be passed using std::move.
   // Earlier versions of the API used a string argument. This version
-  // is removed; its functionality was the same as passing
-  // error.message.
-  virtual void OnFailure(RTCError error) = 0;
+  // is deprecated; in order to let clients remove the old version, it has a
+  // default implementation. If both versions are unimplemented, the
+  // result will be a runtime error (stack overflow). This is intentional.
+  virtual void OnFailure(RTCError error);
+  virtual void OnFailure(const std::string& error);
 
  protected:
   ~CreateSessionDescriptionObserver() override = default;
@@ -236,7 +237,9 @@
  public:
   virtual void OnSuccess() = 0;
   // See description in CreateSessionDescriptionObserver for OnFailure.
-  virtual void OnFailure(RTCError error) = 0;
+  virtual void OnFailure(RTCError error);
+
+  virtual void OnFailure(const std::string& error);
 
  protected:
   ~SetSessionDescriptionObserver() override = default;