ENH/BUG: Modified shift internals to work with arbitrary n-dim objects
and axis

BUG: fix shift indexer to work on correct axis length

ENH: Generalize shift to work with any N-dimensional block instead 1,2

CLN: Corrected Returns docstring
TST: test that DataFrame.shift(axis='columns') works