message: ref(utils): Simplify collection of xhr request payload
  This simplifies the implementation of XHR request body harvesting for breadcrumbs, introduced in Instead of caching the data and grabbing it at a later point, this grabs it as soon as it's available, in the xhr `send` method.
diff: @@ -219,9 +219,6 @@ function instrumentXHR(): void {
  return;
  }
  - // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.
  - const requestKeys: XMLHttpRequest[] = [];
  - const requestValues: Array<any>[] = [];
  const xhrproto = XMLHttpRequest.prototype;
  fill(xhrproto, 'open', function(originalOpen: () => void): () => void {
  @@ -251,20 +248,6 @@ function instrumentXHR(): void {
  /* do nothing */
  }
  - try {
  - const requestPos = requestKeys.indexOf(xhr);
  - if (requestPos !== -1) {
  - // Make sure to pop both key and value to keep it in sync.
  - requestKeys.splice(requestPos);
  - const args = requestValues.splice(requestPos)[0];
  - if (args[0] !== undefined) {
  - xhrInfo.body = args[0] as XHRSendInput;
  - }
  - }
  - } catch (e) {
  - /* do nothing */
  - }
  -
  triggerHandlers('xhr', {
  args,
  endTimestamp: Date.now(),
  @@ -291,8 +274,9 @@ function instrumentXHR(): void {
  fill(xhrproto, 'send', function(originalSend: () => void): () => void {
  return function(this: SentryWrappedXMLHttpRequest, ...args: any[]): void {
  - requestKeys.push(this);
  - requestValues.push(args);
  + if (this.__sentry_xhr__ && args[0] !== undefined) {
  + this.__sentry_xhr__.body = args[0];
  + }
  triggerHandlers('xhr', {
  args,
  