DataFrame iloc mutates array or Series indexer with negative index value
Using pandas version 0.23.1 and 0.23.2 from conda-forge.
```python
import pandas as pd
df = pd.DataFrame({'a': [10, 20, 30]})

# with list indexer, iloc works as expected
L = [-1, 0, 1]
df.iloc[L]
assert L == [-1, 0, 1]

# with Series indexer, iloc mutates the Series!
s = pd.Series(L)
df.iloc[s]
assert (s == [2, 0, 1]).all()  # wrong!
assert (s == L).all()  # fails!

# with array indexer, iloc mutates the array!
a = np.array(L)
df.iloc[a]
assert (a == [2, 0, 1]).all()  # wrong!
assert (a == L).all()  # fails!
```
Negative index values are not in the list of valid indexers for `iloc` according to the docstring, so maybe this is undefined behavior.  However, it is surprising.  It gives the result one would expect (and does not raise for being out of bounds), but with an unexpected side effect.