TraceProcessor: extract Iterator{,Impl} into their own classes

Non-functional refactoring. This is just to allow
Iterator (and IteratorImpl) to be forward declared and
prevent circular dependencies.
Also keeps the codebase a bit cleaner keeping one class
per header with a matching name.

Change-Id: I30a2d9a9fd8e6042d6a98ee029dd37f824e61f98
diff --git a/BUILD b/BUILD
index f426d10..d13caca 100644
--- a/BUILD
+++ b/BUILD
@@ -452,6 +452,7 @@
 filegroup(
     name = "include_perfetto_trace_processor_trace_processor",
     srcs = [
+        "include/perfetto/trace_processor/iterator.h",
         "include/perfetto/trace_processor/read_trace.h",
         "include/perfetto/trace_processor/trace_processor.h",
     ],
@@ -936,6 +937,8 @@
         "src/trace_processor/dynamic/experimental_flamegraph_generator.h",
         "src/trace_processor/dynamic/experimental_slice_layout_generator.cc",
         "src/trace_processor/dynamic/experimental_slice_layout_generator.h",
+        "src/trace_processor/iterator_impl.cc",
+        "src/trace_processor/iterator_impl.h",
         "src/trace_processor/read_trace.cc",
         "src/trace_processor/trace_processor.cc",
         "src/trace_processor/trace_processor_impl.cc",