BUG: Bug in .loc performing fallback integer indexing with object dtype indices (GH7496)
closes #7496

```


In [4]: s = Series()

In [5]: s.loc[1] = 1

In [6]: s.loc['a'] = 2

In [7]: s.loc[-1]
KeyError: 'the label [-1] is not in the [index]'

In [8]: s.loc[[-1, -2]]
Out[8]: 
-1   NaN
-2   NaN
dtype: float64

In [9]: s.loc[['4']]
Out[9]: 
4   NaN
dtype: float64

In [10]: s.loc[-1] = 3

In [11]: s.loc[[-1,-2]]
Out[11]: 
-1     3
-2   NaN
dtype: float64

In [12]: s['a'] = 2

In [13]: s.loc[[-2]]
Out[13]: 
-2   NaN
dtype: float64

In [14]: del s['a']

In [15]: s.loc[[-2]] = 0
KeyError: '[-2] not in index'
```

```
s.loc[[-2]] = 0
```

shouldn't `-2` to be added to index after that?
 this one looks similar https://github.com/pydata/pandas/issues/5420
 for the `s.loc[[-2]] = 0`.

Setting with a single indexer (e.g. `s.loc[-2] = 0` is fine as this is enlargement.
However, _setting_ with a list (either on a Series or a DataFrame) was deemed to be
more 'error prone', so it was disallowed.

e.g. both `s.loc[[-2]] = 0` and `df.loc[[-2]] = 0` are not allowed unless the location already exists.
though `s.loc[-2] = 0` and `df.loc[-2] = 0` will work 
