Petit refactoring

Donc j'avais envie de donner un petit coup de patte là dedans.

Ce que j'ai fait :

- Docstring
- PEP8
- Des todos pour en discuter.

N'hésite pas à dire ce que tu penses de tout ça.

Ceci dit, j'ai relu le texte exact de la ZEP-12, et il dit clairement qu'il faut arrêter de se reposer sur la base de donnée un maximum, au delà des évidences tels que auteurs/notes/sha/...  Du coup, y'a peut-être un truc qu'il serait intelligent de faire : un objet `PublishableContent` qui serait représentant de ce qu'il y a en base de donnée, comme actuelement, avec toutes les *metadata*. De l'autre coté, un objet `VersionnedContent`, qui serait généré à partir d'une version donnée, et uniquement à partir du JSON. Autrement dit, y'aura à un moment dans le code un 

```python
content = PublishableContent.object.get(pk=pk)
try:
  versionned = VersionnedContent(content, version)
except VersionDoesNotExists:
  raise Http404
[...]
versionned.update_repo()
```

Mes arguments pour ça sont que de toute façon, on ne travaille jamais que sur une seule version à la fois, et qu'au moins, on éviterai tout les problèmes de "ah, ben le titre a changé d'une version à l'autre, donc le slug a changé, donc ...". Et on aurait plus besoin de stocker tout les containeur et extrait en base de donnée (moins d'embrouille coté gestion de version aussi).

En gros, l'idée, c'est simplement de remplacer les `mandata = tutorial.load_from_json()` qui sont un peu partout dans le code par un objet, qui serait plus propre et plus efficace a gérer.

À voir :)


PS: tient, on avait pas dit qu'on en profitais pour jetter GitPython et passer à autre chose ?