[Reland] [Media Router] PresentationRequest cleanup round 1.

In C++11, STL containers cannot be initialized with {} due to
http://cplusplus.github.io/LWG/lwg-defects.html#2193. This was fixed in
C++14, but for now we will spell out the constructor.

Original patch: https://chromium-review.googlesource.com/c/578528/

Original description:

[Media Router] PresentationRequest cleanup round 1.

Move PresentationRequest to content/browser and use it in
PresentationServiceDelegate where applicable.
- Replace GetMediaSources() method with helper function in c/b/m/r.
- Replace Equals() method with a helper function in PSDImpl.
- PresentationRequest is now a struct.


Other things to consider after this patch:
- Move PresentationRequest out of CPCR, maybe make
  ShowMediaRouterDialogForPresentation take a PR and 2 callbacks?
-- the callbacks can be wrapped in a struct internal to MRDC.
- Remove the PR equality checking - we don't need this if we know
the PresentationRequest has not been reset.
- Support moves for PresentationRequest. Right now it's effective in
only one place but further cleanups may find it useful.


Bug: 664326, 708209
Change-Id: I2afb8f3946f5b5fb1832e5789bb9dc987d57f135
Reviewed-on: https://chromium-review.googlesource.com/583870
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Commit-Queue: Derek Cheng <imcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489463}
26 files changed