Simpler and more powerful decorator

See #48 for all the gory details.
There's not a fantastic answer here. I think there's a compelling reason to keep the set-of-applicable-methods as part of the cache key (the GET/POST stacking). Maybe defaulting to `ALL` (and adding a named sentinel like that) is best, since, on a CBV, the get and post methods will be limited separately (unless you're using the mixin, which, again, I don't like) anyway, since their names end up in it. (In the mixin, you also end up ratelimiting `dispatch` so it doesn't work the same way.)

I think it largely does make sense to default to the "dangerous" verbs, at least (`POST`/`PUT`/`DELETE`) but it's not significantly worse to default to ratelimiting everything.

I'd probably do something like add

```python
# ratelimit/__init__.py
ALL = None

# ratelimit/decorators.py
from ratelimit import ALL

def ratelimit(..., method=ALL, ...):
    # ...

ratelimit.ALL = ALL

# thirdparty/code.py
from ratelimit.decorators import ratelimit

@ratelimit(method=ratelimit.ALL):
def somefunc():
    pass
```

just so you wouldn't need to make multiple imports from `ratelimit` in most cases.