BLD: add benchmarks for all single-axis indexers
This PR will add benchmarks for all available single-axis container indexing patterns discussed in #6328.

It is currently in WIP state, but the ideas and comments are welcome. Multi-axis indexers are left for future to avoid overcomplicating things from the beginning.

Part of functionality implemented in this PR is caching `tm.makeCustomIndex` results to avoid spending several seconds in setup of each benchmark. It may deserve a separate PR to implement this caching within `pandas.util.testing` module. 

TODO:
- [x] axis != 0 benchmarks
- [x] container shape specification
- [ ] benchmarking `obj.__getitem__`
- [ ] benchmarking `obj.xs`
- [ ] multiindex axes
- [ ] non-unique axes
- [ ] non-string index benchmarks
