REF: de-nest Series getitem/setitem checks
ATM the first checks we do in `Series.__getitem__` and `__setitem__` are for `get_loc` with some not-totally-straightforward try/except logic.

This moves the slice case and the com.is_bool_indexer case up, and aligns the ordering of the checks between getitem/setitem.

Getting the com.is_bool_indexer case out from the try/except in setitem is particularly nice.

That said, this _may_ not be what we want to do.  This will very slightly improve performance in the cases moved up, and equally slightly harm performance in the scalar case.  AFAIK the current ordering is not based on optimizing one case over the others.
> but about the is_bool_indexer, I am not so sure

yah, im torn on this.  I think following #33404 i can improve the try/except blocks to allow us to retain the current ordering while also getting the de-nesting we get here can you rebase following #33404 merge with any changes you are planning mothballing until after the next pass