Add request filters for checking a request needs to be pinned

Move original request method check logic to a new module named `filters.py`, users can specify a list of filters named `settings.MULTIDB_REQUEST_FILTERS`, the default is `('multidb.filters.request_method_filter',)`.

I think it is necessary when the POST method does not always mean it should be pinned.
That's exactly my point, with how we misuse settings. But we can still test this!

Instead of `@override_settings` we need to use `@mock.patch.objects`, but we can do this:

```python
@mock.patch.object(multidb.middleware, 'REQUEST_FILTERS', (some, test, tuple))
def test_request_filters_somehow():
    pass
```