Rework how we bypass browser caches of the scouting app

This patch adds a new way to access files on the webserver. Users can
now request files by their sha256 checksum. The URL pattern follows
`/sha256/<checksum>/<path>`. The `<path>` portion doesn't actually
matter, but it helps with readability.

This patch migrates the main bundle and the pictures to use the new
checksum-addressable scheme.

Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: I76eaa9b0f69af98e48e8e73e32c82ce2916fbe41
diff --git a/scouting/www/index.template.html b/scouting/www/index.template.html
new file mode 100644
index 0000000..303dca1
--- /dev/null
+++ b/scouting/www/index.template.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>FRC971 Scouting Application</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <base href="/" />
+    <script src="./npm/node_modules/zone.js/dist/zone.min.js"></script>
+    <link
+      href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
+      rel="stylesheet"
+      integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
+      crossorigin="anonymous"
+    />
+  </head>
+  <body>
+    <my-app></my-app>
+    <!-- The path here is auto-generated to be /sha256/<checksum>/main_bundle_file.js. -->
+    <script src="{MAIN_BUNDLE_FILE}"></script>
+  </body>
+</html>