PERF: unstack
- [ ] closes #xxxx
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

Avoids expensive get_indexer calls.

```
from asv_bench.benchmarks.reshape import *

self = Unstack()
self.setup("category")

%timeit self.time_full_product("category")
58.8 ms ± 1.52 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)  # <- master
31.6 ms ± 1.98 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)  # <- PR
```