BUG/API: maybe drop recently introduced "takeable" from reindex?
I think there might be an issue with `reindex(..., takeable=True)` introduced in a recent release and you might want to consider deprecating/dropping it while it hasn't crept to user code too much.

The main reason is that _reindex takeable_ is conceptually different from _reindex_: the latter can introduce new rows with values that must be filled while the former cannot. Essentially, _reindex takeable_ is no more than a fancy indexing operation of numpy which is already available via `iloc` indexer. If you consider _reindex_ parameters, you can see there' no additional value in _reindex takeable_:
- `method`, `limit` & `fill_value` parameters are useless since no empty cells can appear
- `level` parameter should be available to user via fancy multiindex slicing added  recently
- `copy` is also achievable via `.copy()` method

So not only it adds no value, but it also increases complexity:
- externally, by adding yet another way to do fancy indexing
- internally, by adding more code paths to follow when implementing & executing reindex

The last point has already caused a bug:

``` python

In [1]: s = pd.Series(list('abc'), index=np.arange(3)[::-1])

In [2]: s
Out[2]: 
2    a
1    b
0    c
dtype: object

In [3]: s.take([2,1,0])
Out[3]: 
0    c
1    b
2    a
dtype: object

In [4]: s.reindex([2,1,0], takeable=True)
Out[4]: 
2    a
1    b
0    c
dtype: object

In [5]: s.iloc[[2,1,0]]
Out[5]: 
2    a
1    b
0    c
dtype: object

```

Of course, this can be fixed by inserting workarounds [here](https://github.com/pydata/pandas/blob/master/pandas/core/generic.py#L1579) and [here](https://github.com/pydata/pandas/blob/master/pandas/core/index.py#L1329) but this will increase complexity even more and won't address the conceptual issue.
