PERF: rebuild_blknos_and_blklocs
I don't have an asv on hand which is dominated by this method, but profiling time_copy_overhead_single_col and looking at this method:

```
from asv_bench.benchmarks.groupby import *
self = Apply()
self.setup(4)

%timeit self.time_copy_overhead_single_col(4)
227 ms ± 10.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- master
218 ms ± 13.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  # <- PR

%prun -s cumtime for n in range(10): self.time_copy_overhead_single_col(4)  # | grep _rebuild_blknos_and_blklocs
    19870    0.208    0.000    0.529    0.000 managers.py:220(_rebuild_blknos_and_blklocs)  # <- master
    19860    0.108    0.000    0.186    0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects}  # <- PR

```