libchromeos: Add Location to MessageLoop interface.

This patch adds an optional first parameter Location to PostTask()
and PostDelayedTask() to help track where the callbacks are being
scheduled from when running with DEBUG enabled.

This patch also logs these locations from the GlibMessageLoop when
verbose logging >= 1 is enabled and libchromeos is compiled with debug,
and logs from FakeMessageLoop when verbose logging >= 1 is enabled
regardless of libchromeos being compiled with debug since
FakeMessageLoop is only used from unittest code.

BUG=brillo:91
TEST=Ran unittests with '--gtest_filter=*MessageLoop*' --v=1; log messages are displayed.

Change-Id: I7e28c575f6f9103e7ed1aa90590cc09389134245
Reviewed-on: https://chromium-review.googlesource.com/280567
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/chromeos/message_loops/message_loop_utils.cc b/chromeos/message_loops/message_loop_utils.cc
index 2096976..cb2eb22 100644
--- a/chromeos/message_loops/message_loop_utils.cc
+++ b/chromeos/message_loops/message_loop_utils.cc
@@ -4,6 +4,7 @@
 
 #include <chromeos/message_loops/message_loop_utils.h>
 
+#include <base/location.h>
 #include <chromeos/bind_lambda.h>
 
 namespace chromeos {
@@ -14,8 +15,9 @@
     base::Callback<bool()> terminate) {
   bool timeout_called = false;
   MessageLoop::TaskId task_id = loop->PostDelayedTask(
-    base::Bind([&timeout_called]() { timeout_called = true; }),
-    timeout);
+      FROM_HERE,
+      base::Bind([&timeout_called]() { timeout_called = true; }),
+      timeout);
   while (!timeout_called && (terminate.is_null() || !terminate.Run()))
     loop->RunOnce(true);