trace_processor: use sched_process_free instead of _exit

This change modifies trace processor to consider sched_process_free
instead of sched_process_exit when doing lifetime tracking of threads.
This is more correct as events can happen in association with a process
after the main thread emits _exit but not after _free.

This change also adds end timestamp tracking for processes as well
defined as the time as the main thread emitting _free.

Change-Id: I253c0c16f719c84b30b72276549993dd0f6f8faa
Bug: 135981504
diff --git a/src/trace_processor/trace_storage.h b/src/trace_processor/trace_storage.h
index 450c59c..71af139 100644
--- a/src/trace_processor/trace_storage.h
+++ b/src/trace_processor/trace_storage.h
@@ -99,6 +99,7 @@
   struct Process {
     explicit Process(uint32_t p) : pid(p) {}
     int64_t start_ns = 0;
+    int64_t end_ns = 0;
     StringId name_id = 0;
     uint32_t pid = 0;
     base::Optional<UniquePid> pupid;