Reland of r240982:

- Retaining the ChromeOS specific code to find the ip address to bind.
- Added more logging to help debugging.
- Finish discovery if there are no valid interfaces to bind to.
- Reordered the starting of the finish timer to be more consistent with original design
- Added missing initialization of the discovery_active_ field which was the cause of the bug of not being able to find any dial devices sometimes.

hshi@ helped me verify that DIAL works again on ChromeOS.
I built Chromium on Mac and also verify it works.


BUG=300113

Review URL: https://codereview.chromium.org/117703003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241764 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 241764