REF: move reshaping of array for setitem from DataFrame into BlockManager internals
I think ideally the DataFrame does not need to be aware of how the underlying manager stores the data (as 2D, transposed or not), so moving the logic of ensuring 2D/transposed values from the DataFrame set_item-related method into `BlockManager.iset`.

This will help for the ArrayManager, so we don't have to re-reshape there.