Use net::HttpRequestHeaders in content::ResourceRequest

Today content::ResourceRequest (and mojom::URLRequest) sends extra
HTTP headers as a \r\n-delimited string, but this means that everytime
we go through URLLoader layer we need to serialize and deserialize
headers, which feels a bit error-prone and inefficient.

This CL tries to commonly use net::HttpRequestHeaders (which is basically a
simple vector of key,value struct), and adds IPC support code as following:

- content/public/common/common_param_traits.{h,cc} for legacy IPC
- services/network/public/interfaces/http_request_headers.* for mojo

Bug: 
Change-Id: Id84ea93d9c14edd2629e4a874ef022ff8d3b5b0a
Reviewed-on: https://chromium-review.googlesource.com/633316
Commit-Queue: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499187}
51 files changed