Avoid touching TimeZoneMonitor's ref count before it's fully constructed

TimeZoneMonitorLinuxImpl is a ref counted type, and its first reference
used to be made by base::Bind implicitly. The reference was passed to
|file_task_runner_| and released on the task destruction.

However, if the PostTask failed or the posted task ran soon before
the ctor of TimeZoneMonitorLinuxImpl has finished, the instance is
destroyed immediately, and `new TimeZoneMonitorLinuxImpl` returns
a stale pointer.

This CL adds a static constructor to move the problematic ref
count manipulation out of the constructor.

Bug: 866456
Change-Id: I5000cfa493cabe8858f20517328fe1d6e27795ff
Reviewed-on: https://chromium-review.googlesource.com/1150959
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578327}
1 file changed