title: NSURLRequest isEqual: affected by allHTTPHeaderFields
body: <p>I compare two NSURLRequest objects which URL and header are same, but <code>isEqual:</code> return <code>NO</code>, so debug:</p>
  
  <p>when I <code>po [taskRequest isEqual:request]</code> result is <code>NO</code>, <code>po request.allHTTPHeaderFields</code> to check is equal, then <code>po [taskRequest isEqual:request]</code> result is <code>YES</code>️</p>
  
  <p>I found if use <code>addValue:forHTTPHeaderField:</code> instead of <code>setValue:forHTTPHeaderField:</code>, it always return <code>YES</code></p>
  
  <p>I try verify in playground <em>Xcode Version 10.2 (10E125)</em>:</p>
  
  <pre class="lang-swift prettyprint-override"><code>let request1 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)
  let request2 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)
  
  request1.setValue("1", forHTTPHeaderField: "1")
  request2.setValue("1", forHTTPHeaderField: "1")
  
  request1 == request2 // true
  
  request2.allHTTPHeaderFields // ["1": "1"]
  
  request1 == request2 // false
  </code></pre>
  
  <p>I expect isEqual: result always correct no matter if I have used the <code>allHTTPHeaderFields</code> method</p>