Adds ETag in the API.

Rajoute le calcul des ETags lors des appels GET et PUT à l'API et du cache de 15 minutes pour tous les appels GET.

> **Attention :** Une nouvelle dépendance. Mettez à jour vos environnements.
Au départ, c'est ce que j'avais fais mais j'ai une erreur quand je ne les mentionne pas.

```console
Internal Server Error: /api/membres/
Traceback (most recent call last):
  File "/Users/Gerard/.virtualenvs/zdsenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/Gerard/.virtualenvs/zdsenv/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
    return view_func(*args, **kwargs)
  File "/Users/Gerard/.virtualenvs/zdsenv/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/Users/Gerard/.virtualenvs/zdsenv/lib/python2.7/site-packages/rest_framework/views.py", line 409, in dispatch
    self.response = self.finalize_response(request, response, *args, **kwargs)
  File "/Users/Gerard/.virtualenvs/zdsenv/lib/python2.7/site-packages/rest_framework/views.py", line 340, in finalize_response
    % type(response)
AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<type 'function'>`
```

D'ailleurs, dans la documentation de la librairie, elle spécifie toujours les parenthèses. J'en ai conclu que c'était la chose à faire et, effectivement, plus d'erreurs avec les parenthèses.