* Accept Public aliases in URL deserializer
Update deserialize_one_or_many to deserialize recipient URL fields while
accepting `Public` and `as:Public` as aliases for the canonical
ActivityStreams public URL.
Add focused tests for single and array inputs, and verify that unrelated
string fields such as `content` are left unchanged.
https://github.com/LemmyNet/lemmy/issues/6465
* Deduplicate deserialized recipients
Drop repeated recipient URLs after deserialization so equivalent public
aliases such as `Public`, `as:Public`, and the canonical public URL do
not produce duplicate entries.
Update the helper documentation and tests to match the deduplicated
result.