TimeCheck: Update code to support a callback

Callback will be used for binder statistics and logging.
Nest TimeCheck into mediautils namespace.
Copy input char * to a persistent string.
Log the thread id which is blocked to the debug message.
Separate code to a const shared ptr handler for easier analysis.
Add timecheck_tests which validate callback.

Test: atest libmediautils_test
Test: atest timecheck_tests
Bug: 219958414
Change-Id: I13c751ed90f39e41d7cfa3b8be51e40403787608
diff --git a/media/utils/include/mediautils/TimerThread.h b/media/utils/include/mediautils/TimerThread.h
index cf457b8..acf0b16 100644
--- a/media/utils/include/mediautils/TimerThread.h
+++ b/media/utils/include/mediautils/TimerThread.h
@@ -48,9 +48,9 @@
 
     /**
      * Cancel a task, previously scheduled with scheduleTask().
-     * If the task has already executed, this is a no-op.
+     * If the task has already executed, this is a no-op and returns false.
      */
-    void cancelTask(Handle handle);
+    bool cancelTask(Handle handle);
 
   private:
     using TimePoint = std::chrono::steady_clock::time_point;