Initialize chrome::DIR_USER_DATA early on for service processes, etc.

http://crrev.com/251126 broke service/helper processes.
(--user-data-dir command-line args weren't respected)

Restore the early PathService DIR_USER_DATA init/override.
(done as before in ChromeMainDelegate::PreSandboxStartup)

Move init code to a file-local InitializeUserDataDir helper.
Append the fallback to the commandline for other processes.
(otherwise child/service processes re-use the bad dir)

Simplify ChromeBrowserMainParts::PreCreateThreadsImpl.
(just get DIR_USER_DATA, don't re-attempt init/override)
Show a warning messagebox here if user-data-dir was invalid.
Move warning UI helper to c/b/ui/startup/bad_flags_prompt.h

Add [Get|Set]InvalidSpecifiedUserDataDir for warning UI.
(add dynamic_annotations dependency for LazyInstance usage)

Remove the ChromeMainUserDataDirTest.GetUserDataDir test.
(now ineffective, it can't hook before PreSandboxStartup)

BUG=345025,345582,318999
TEST=The --user-data-dir command-line argument works as expected for browser, child, and service processes (cloud print connector, chrome logging, etc.). Users are still warned with a dialog when they supply invalid or restricted directory paths for the browser.
R=sky@chromium.org,vitalybuka@chromium.org

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

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

http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog_blink.html?url=/trunk&range=167902:167975&mode=html
TBR=
BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253804 0039d316-1c4b-4281-b951-d872f2087c98
Update .DEPS.git

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