Simpler and more powerful decorator

See #48 for all the gory details.
Mmm... I'm not wildly excited about the method-match-method thing.

Maybe instead encourage doing `method=None` since the CBV is only going to dispatch that method to this method anyhow?

This brings up another thought: "None" doesn't read particularly well for specifying all methods. Maybe  add a sleight-of-hand `ALL = None` to the ratelimit module which someone could import and use? Then this could read:

```
    class MyView(View):
        @ratelimit(key='ip', method=ALL)
        def post(self, request, *args):
            # something expensive....
```

Having said that, it seems like it makes more sense to have the method argument default to all HTTP verbs? If you had a ratelimit on a function view that did GET and POST, like this:

```
@ratelimit(rate='5/m')
def someview(request):
    if request.method == 'POST':
        ...
    ....
```

is it more common to expect the ratelimit to apply to everything the view does or just the POST stuff? Seems like it reads better if it applies to all the methods.

(Just thinking out loud.)