Geolocation: move from content/browser to device/

This CL:

- moves all of content/browser/geolocation to device/geolocation
- the public geolocation files in content/common/{browser, public}
 are also relocated to device/geolocation
- the geolocation-specific unittests are compiled into
 (already existing) device_unittests
- adds new fancy new device/geolocation BUILD.gn  and
 geolocation.gyp as well
- makes a component of geolocation (at least for gn) and that forces
 adding geolocation_export.h (like other //device/ folders).
- Java Geolocation files are moved as well, and a new
 geolocation_jni_registrar is added.
- classes are moved to device namespace.

All paths and include/call sites updated, DEPS, BUILD.gn files,
gypi files etc.

Some tricks:
- can't use BrowserThread::CurrentlyOn, etc; instead, the
 task runner is cached on constructor and used for both thread
 checking and PostTask()ing (a few unittest and wifi_data_provider*
 needed that substitution).
- GeolocationServiceContext is moved to public/cpp so it can
 be referenced from WebContentsImpl.
- MockLocationProvider.java is also moved to device/geolocation.

BUG=612334
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

TBR=pstew@chromium.org
rationale:device/geolocation depends on dbus and this triggers
a DEPS presubmit rule -- however, this CL adds no new dependencies,
hence moving on in the interest of speed (and avoiding more rebases).

Review-Url: https://codereview.chromium.org/2176753003
Cr-Commit-Position: refs/heads/master@{#408160}
153 files changed