Make filter an optional argument where applicable

Various API methods require a filter parameter which is expected to be a
MarketFilter object. This object *must* be specified but *may* be empty
(in which case the response is unfiltered). Therefore it's not absolutely
required for users to pass a MarketFilter to methods which previously
required it.

Where previously you would have to do something like:

```python
event_types = client.list_event_types(
     MarketFilter(text_query='tennis')
)
```

you can now:

```python
event_types = client.list_event_types()
```

This does require that the signature of Betfair#list_time_ranges change to
allow the filter parameter to be optional, so this is **not** backwards
comptabile.