[ArrowStringArray] API: StringArray -> ObjectStringArray
xref https://github.com/pandas-dev/pandas/issues/35169#issuecomment-712372349

this PR is draft as this change has not yet been discussed. (maybe could keep the StringArray the same and create a StringArrayBase instead)

also probably want to do this after #39908 (which is not yet ready) and then move the common base class into a separate module along with the dtype. (this could be string_base.py or create subdir with maybe base.py, string_arrow.py and string_python.py) 

we should leave moving things around for a follow-up to keep the diff simpler to review.

This PR could be a precusor to a follow-up to #40708 to remove duplication https://github.com/pandas-dev/pandas/pull/40708#discussion_r605106321 (or could be done with common helper function or mixin https://github.com/pandas-dev/pandas/pull/40708#discussion_r605674743)

No deduplication here. just creating base class and changes to make the tests pass

This is API breaking, but for experimental API, so we would probably need some documentation or add to #40747 if we do this after #39908