message: Add get_hashed_value for StringValue
  Summary: Given a StringValue, if you want a Hashed<Value> there was no obvious way to do that without getting a possible Err in the type. Add a method to do it directly.
diff: @@ -32,7 +32,7 @@ use crate::{
  collections::{BorrowHashed, Hashed},
  values::{
  layout::static_string::VALUE_EMPTY_STRING, string::StarlarkStr, Freeze, Freezer,
  - FrozenValueTyped, Trace, ValueTyped,
  + FrozenValue, FrozenValueTyped, Trace, Value, ValueTyped,
  },
  };
  @@ -104,6 +104,11 @@ impl FrozenStringValue {
  Hashed::new_unchecked(self.get_hash(), self)
  }
  + /// Get the [`FrozenValue`] along with the hash.
  + pub fn get_hashed_value(self) -> Hashed<FrozenValue> {
  + Hashed::new_unchecked(self.get_hash(), self.to_frozen_value())
  + }
  +
  /// Get the string reference along with the hash.
  pub fn get_hashed_str(self) -> BorrowHashed<'static, str> {
  BorrowHashed::new_unchecked(self.get_hash(), self.as_str())
  @@ -126,6 +131,11 @@ impl<'v> StringValue<'v> {
  BorrowHashed::new_unchecked(self.get_hash(), self.as_str())
  }
  + /// Get the [`Value`] along with the hash.
  + pub fn get_hashed_value(self) -> Hashed<Value<'v>> {
  + Hashed::new_unchecked(self.get_hash(), self.to_value())
  + }
  +
  /// If this string value is frozen, return it.
  pub fn unpack_frozen(self) -> Option<FrozenStringValue> {
  self.to_value()
  