ENH: Multi-layered Vector Functions
#### Add multi-layered vector support
When working on a large panadas dataframe, I tried to use the iloc method on the dataframe with a list of lists index query. I thought that the behavior of iloc with a 1d array would be extended to 2d arrays, and it would return a 2d array of the query results. This would allow for lists of lists to be operated on inside the dataframe.

#### Extending the behavior of iloc to multidimensional indexes

I think that the way that iloc handles 1d arrays should be extended to 2d and possibly even higher dimensions to allow for efficient loopless code to be written. For example, passing iloc a 2d array of indices should have it return 2d array of the results.

#### API breaking implications

This shouldn't break any existing code, or add any new arguments to iloc, just make the backend handle multidimensional arrays and return a multidimensional array as necessary.

#### Alternatives

A loop can just be made in python to achieve the same effect but will be significantly slower. While my dataset could probably be operated on with just python and some basic patience, the most ideal solution, as far as I can tell, would be this.

#### Example
This is what could be an implementation of this could look like.
```
indexArray = [[0, 3, 5, 7, 9], [1, 4, 6, 8]]
2d_result = df.iloc[indexArray]
```
2d_result would be an array with the shape of the indexArray populated by results from df.