Create app_common and unify most displays.

This change moves all platform specific code from pw_display
into a new module: app_common. This new module is responsible
for initializig GPIO, SPI, creating the framebuffers and the
display. This allows for a second big change which is moving
pw_display from a facade to a concrete class. This is made
possible by the fact that it no longer need worry about the
display type or any platform details. These are all handled
by pw_display_driver and app_common respectively.

All configuration data (display size, pin assignments, etc.)
are now in the targets and app_common is resposible for
passing these down to the implementation for use.

Bug: none
Change-Id: I2da6e9b1a24f8feb251e7610e460bfdb5008a76c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/120530
Commit-Queue: Chris Mumford <cmumford@google.com>
Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
diff --git a/applications/terminal_display/BUILD.gn b/applications/terminal_display/BUILD.gn
index f414c3a..66e3bfb 100644
--- a/applications/terminal_display/BUILD.gn
+++ b/applications/terminal_display/BUILD.gn
@@ -48,6 +48,7 @@
   sources = [ "main.cc" ]
   deps = [
     ":text_buffer",
+    "$dir_app_common",
     "$dir_pw_color",
     "$dir_pw_containers:vector",
     "$dir_pw_coordinates",