Remove warning suppressions and fix many casting bugs

This change removes most warning suppressions, in particular
from production code. In the past we inherit a bunch of -Wno-xxx
suppressions required to build gtest and libprotobuf headers.
Doing so, however, caused the suppressions to propagate back to
the translation units that were including any protobuf header
or any auto-generated .pb.h stub.
This change moves the gtest and probobuf header to be a
system include (-isystem vs -I). Doing so implicitly blacklists
any compiler warning on the headers.
This CL then re-enables warnings and deals with the fall out of
fixes that came out of this.

Bug: 77316877
Test: pefetto_unittests / perfetto_integrationtests
Change-Id: I3a01852ebf7d0b9bf19658ddf117209d129c70be
diff --git a/test/fake_producer.h b/test/fake_producer.h
index 418c01e..35149e3 100644
--- a/test/fake_producer.h
+++ b/test/fake_producer.h
@@ -59,9 +59,9 @@
   base::TaskRunner* task_runner_ = nullptr;
   std::string name_;
   std::minstd_rand0 rnd_engine_;
-  size_t message_size_ = 0;
-  size_t message_count_ = 0;
-  size_t max_messages_per_second_ = 0;
+  uint32_t message_size_ = 0;
+  uint32_t message_count_ = 0;
+  uint32_t max_messages_per_second_ = 0;
   std::function<void()> on_create_data_source_instance_;
   std::unique_ptr<Service::ProducerEndpoint> endpoint_;
   std::unique_ptr<TraceWriter> trace_writer_;