text: Title: uniques and distinct_counts in ak.str.*
  Body: ### Description of new feature
  
  Although [pyarrow.compute.unique](https://arrow.apache.org/docs/python/generated/pyarrow.compute.unique.html) and [pyarrow.compute.value_counds](https://arrow.apache.org/docs/python/generated/pyarrow.compute.value_counts.html) work for many data types, we could use them on strings only in the `ak.str.*` namespace.
  
  Why not use them in general? Outside of the `ak.str.*` (and possible `ak.dt.*`) namespace, it would be surprising to encounter a function that does not work due to pyarrow not being installed. Also, I don't know how these functions would define equality for lists and records, with or without missing values. We'd want to know what semantics we're imposing.
  
  We can already implement uniqueness and unique counts of primitive types with sorting and `ak.run_lengths`, so that wouldn't be a _new_ ability. Doing uniqueness-counting on strings is an especially useful case; it would be a positive asset to add even that one case.
  
  I must have overlooked it when scanning through lists of string functions; they're categorized differently. Are there any other functions that we could use in a string-only context in `ak.str.*`? 