trace_processor: overhaul comparision in db tables

This CL overhauls comparisions in all the db tables by centralising the
logic of comparing between values into a single file. By doing this, it
is easier to be both internally consistent (as all comparisions should
call through to one of the comparision functions) and consistent with
SQLite (as we can easily audit that the behaviour matches).

We also make SqlValue comparisions consistent with the strongly typed
comparisions which had drifted out of sync after the code to compare
between doubles and longs was added.

Context: go/perfetto-tp-refactor
Bug: 135177627
Change-Id: I1f9131de872128b5a1c3b08592ede99d2a879a70
diff --git a/BUILD b/BUILD
index e670164..1dde88e 100644
--- a/BUILD
+++ b/BUILD
@@ -582,6 +582,7 @@
         "src/trace_processor/db/bit_vector_iterators.h",
         "src/trace_processor/db/column.cc",
         "src/trace_processor/db/column.h",
+        "src/trace_processor/db/compare.h",
         "src/trace_processor/db/row_map.cc",
         "src/trace_processor/db/row_map.h",
         "src/trace_processor/db/sparse_vector.h",