TYP: __getitem__ method of EA
as a precursor to https://github.com/pandas-dev/pandas/pull/35259#discussion_r522951940

there are more changes/additions needed but this PR might get too big to review and push through in a timely manor.

overload is required to avoid casts
Any is used for any type, whereas should use object.
only the abstract classes have been typed.
could create a scalar type alias in each of the EA classes similar to DTScalarOrNaT in DatetimeLikeArrayMixin
import and expose pandas._libs.missing.NAType in pandas._typing 

any of these could be done here or as follow-on
lgtm any comments @jbrockmendel @jorisvandenbossche  thanks @simonjayhawkins 