BlockManager refactoring

CLN: move BlockManager axis-altering functions together

CLN: remove unused group_blocks_by_ftype method

BUG: fix BlockPlacement lenght determination

BUG: forbid negative step ranges in BlockPlacement

ENH: add force_copy kwarg in Block.getitem_block method

API: (internal) Block.delete is now in-place

PERF: replace _ref_locs with separate _blknos & _blklocs in
      BlockManager class, make BlockManager.blocks a tuple to ensure
      _blknos consistency

PERF: touch only affected blocks in BlockManager.insert/delete

PERF: fastpath detection of no-reindex case in join unit construction