REF: move logic of 'block manager axis' into the BlockManager
@jreback @jbrockmendel what are your thoughts about doing this? 
Currently the 0/1 -> 1/0 axis switch for the BlockManager happens on the DataFrame side, while I think it would be a bit cleaner to let this be the responsibility of the BlockManager method being called.

For illustration, the diff of this PR is such a change for the `diff()` method: instead of using `_get_block_manager_axis` in frame.py, it's the `BlockManager.diff()` method that takes care of this (so just moving it down a level). 