TYP: Typing for ExtensionArray.__getitem__ 
Changes for typing of `ExtensionArray.__getitem__()`.

Required changes to `DateTimeLikeArrayMixin` for correct compatibility.

@simonjayhawkins can you review, please? > Thanks @Dr-Irv generally lgtm. issue with api regarding using Sequence that may require some discussion

Thinking some more, probably best to remove Sequence altogether here.

A tuple of ints is a Sequence[int] and returns a Scalar on our 1d arrays in some cases and errors in others, so we need to add an extra overload for tuple to make the the annotations correct. This will then likely create LSP issues with the subclasses that can be backed by a 2d array as the return type of and tuple of ints will be inconsistent will the base implementation.
 > @Dr-Irv can you also add annotations to the other array subclasses, Categorical, Interval, Masked, ArrowStringArray and Sparse before catering for the 2d array subclasses

Done in next commit.  Created issues in the block and array managers where now the `type ignore` comments have to change, as we are strictly defining EA's to be 1D.  So I changed those comments. @simonjayhawkins  pushed changes a week ago, so looking forward to a new review. @simonjayhawkins @jbrockmendel Based on our discussion today, I think this is where we want to be.  The base EA class `getitem()` is accepting single dimensional arguments, but the mixin classes accept 2D versions, including tuples.

Can you do a pass through the current version and see if there is anything else to change? @simonjayhawkins ping... pinging @simonjayhawkins  weekly ping @simonjayhawkins  another ping @simonjayhawkins  same @Dr-Irv 

cc @twoertwein if you can have a look as you are looking at similar things @jreback all green now (except for the one test on Windows that always seems to time out) thanks @Dr-Irv 