Requesting item [-1] on the result of select() raises an error.
Originally this is a design decision I borrowed from Django's ORM. I believe the idea is to that the API should reinforce the concept that the query result wrapper is not a list, and should not be treated as such. That said, I can see how this might cause confusion since the other `__getitem__` behaviors are available. I'll address this with a patch, using yours as a reference. Thanks!

Discussion on django issue tracker: https://code.djangoproject.com/ticket/13089
 Thanks again @HughMacdonald
 Cool - thanks for that.

I've found something that may or may not be considered an issue, but standard python conventions don't work.

If I do:

```
items = MyTable.select()
myItem = items[-1]
```

I get:

``` python
[code]Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/peewee.py", line 2980, in __getitem__
    res.fill_cache(index)
  File "/usr/local/lib/python2.7/site-packages/peewee.py", line 2131, in fill_cache
    raise ValueError('Negative values are not supported.')
ValueError: Negative values are not supported.[/code]
```

(These lines are actually 3094 and 2233 in the current master)

I've made a change in my own fork, but I wanted to flag it up here before putting a pull request in.

I've modified the tests too to test that this does the right job, and added some tests for slices using negative indices.

Here's my branch with this in - let me know if it's okay to put in as a PR.

https://github.com/HughMacdonald/peewee/tree/select_results_negative_index

Thanks
