stm32cube: Add generic build script

This adds a generic stm32cube build script. The pw_package creates a
text file listing all of the relavent files in the repos. The python
script then reads the text file and lists the needed source files and
headers.

The python script also inserts a `pw_stm32cube_Init()` into the startup
scripts and converts .icf -> .ld linker scripts.

Although the API's are not guaranteed to be compatible across families,
many of the common API's (like GPIO) are identical. This CL adds a
common header, so that integrations targeting multiple families can be
built.

I have tested this integration on F2, F4, and L5 boards.

Change-Id: Ibc79cf7d5cf76b220bb193849863abc16f413967
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/42924
Commit-Queue: Varun Sharma <vars@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Reviewed-by: Ali Zhang <alizhang@google.com>
diff --git a/pw_env_setup/BUILD.gn b/pw_env_setup/BUILD.gn
index b097e68..48be4eb 100644
--- a/pw_env_setup/BUILD.gn
+++ b/pw_env_setup/BUILD.gn
@@ -43,6 +43,7 @@
     "$dir_pw_protobuf_compiler/py",
     "$dir_pw_rpc/py",
     "$dir_pw_status/py",
+    "$dir_pw_stm32cube_build/py",
     "$dir_pw_tokenizer/py",
     "$dir_pw_toolchain/py",
     "$dir_pw_trace/py",