REF: Dataframe.__init__
in #34875 several checks were added to the main Dataframe construction to handle extension arrays, in particular extension scalars

this introduced multiple checks like

if is_extensions_drype(,,):
   ...
else:
   ...


these should be refactored and pushed down to more understandable functions 

this construction is now so complicated that bugs are certain to happen