Clean up quic_stream_priority.cc

- Move serialized dictionary instead of copying it
- Consolidate redundant is_integer/GetInteger and is_boolean/GetBoolean
  with GetIfInteger and GetIfBoolean
- Remove likely unintentional copy of item due to lack of `&` on
  declaration

PiperOrigin-RevId: 958406997
diff --git a/quiche/quic/core/quic_stream_priority.cc b/quiche/quic/core/quic_stream_priority.cc
index 726cc17..ed5df86 100644
--- a/quiche/quic/core/quic_stream_priority.cc
+++ b/quiche/quic/core/quic_stream_priority.cc
@@ -39,7 +39,7 @@
     return "";
   }
 
-  return *priority_field_value;
+  return *std::move(priority_field_value);
 }
 
 std::optional<HttpStreamPriority> ParsePriorityFieldValue(
@@ -67,17 +67,19 @@
       continue;
     }
 
-    const quiche::structured_headers::Item item = member[0].item;
-    if (name == HttpStreamPriority::kUrgencyKey && item.is_integer()) {
-      int parsed_urgency = item.GetInteger();
+    const quiche::structured_headers::Item& item = member[0].item;
+    if (name == HttpStreamPriority::kUrgencyKey) {
+      const int64_t* parsed_urgency = item.GetIfInteger();
       // Ignore out-of-range values.
-      if (parsed_urgency >= HttpStreamPriority::kMinimumUrgency &&
-          parsed_urgency <= HttpStreamPriority::kMaximumUrgency) {
-        urgency = parsed_urgency;
+      if (parsed_urgency &&
+          *parsed_urgency >= HttpStreamPriority::kMinimumUrgency &&
+          *parsed_urgency <= HttpStreamPriority::kMaximumUrgency) {
+        urgency = *parsed_urgency;
       }
-    } else if (name == HttpStreamPriority::kIncrementalKey &&
-               item.is_boolean()) {
-      incremental = item.GetBoolean();
+    } else if (name == HttpStreamPriority::kIncrementalKey) {
+      if (const bool* parsed_incremental = item.GetIfBoolean()) {
+        incremental = *parsed_incremental;
+      }
     }
   }