backfill: Allow unsupported components and add status to Component

Instead of filtering unsupported components out of backfill, allow
them through and add information to the Component proto to track.

Uber diff from local run:
  https://paste.googleplex.com/5380495018819584?raw

BUG=b:205577086
TEST=local backfill

Change-Id: I2f314c449e309888df7e1f125a07d6d8e9ca07e7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/config/+/3268888
Auto-Submit: Sean McAllister <smcallis@google.com>
Reviewed-by: Navil Perez <navil@google.com>
Commit-Queue: Sean McAllister <smcallis@google.com>
diff --git a/scripts/common/utilities.py b/scripts/common/utilities.py
index c088e9d..bf24e83 100644
--- a/scripts/common/utilities.py
+++ b/scripts/common/utilities.py
@@ -78,7 +78,22 @@
     """
 
   # Enable recursive sort on arrays
-  filt = 'walk(if type == "array" then sort else . end)'
+  filt = """
+def safeget(f):
+  if type == "object" then
+     f
+  else
+     .
+  end;
+
+walk(
+  if type == "array" then
+    sort_by(safeget(.hwidLabel), safeget(.id), .)
+  else
+    .
+  end
+)
+"""
 
   # if inputs aren't declared, use a file that will (almost surely) never
   # exist and pass -N to diff so it treats it as an empty file and gives a