added  functionality to allow negative loc values to work with Index.insert
closes #7256 

needs tests
 Added testing @jreback to the class `test_index.TestIndex`, ... it looked a little daunting at first, but I think I ended up getting it
 To clarify, do you mean `Index.insert` onto an empty `Index`?
 yep (for all three cases) (and if loc > 1 or < -1 then it will raise a IndexError); tests are prob their for that though
 Thanks for clarifying, making those changes now.
 Added test cases for:

[x] null
[x]+/- 
[x] neq (0,-1)
[x] loc = (0,-1)  
 https://github.com/pydata/pandas/issues/7256
 You still need a +1 in order to get the indexing to work  properly, or else you get the same "off by 1 error."  I'm more than happy to make it `if loc < 0: loc += len(_self) + 1`
 ok...looks good.pls squash down to 1 commit
 I **think** I did what you were asking for... I've never squashed commits down to a single, but it's under commit `471c8f5`.
 see here: https://github.com/pydata/pandas/wiki/Using-Git

you `git rebase -i master`, squash everything (or force together)

then force push
 @jreback, we good, now?
 you still have lots of commits.

```
git rebase -i upstream/master
```

then s/f

```
git push yourfork thisbranchname -f
```

doesn't work for you?
 That was it, thanks.

[last commit](https://github.com/benjaminmgross/pandas/commit/adb1a453ba651e6f9faaca602ef5fcf3b01f51f9)
 merged via https://github.com/pydata/pandas/commit/962ca2c5837151e36decb23f7835d4f8771aaa47

thanks!
