Fix versionning²

| Q                         | R
| ------------------------- | -------------------------------------------
| Correction de bugs ?      | oui (!)
| Nouvelle Fonctionnalité ? | non
| Tickets concernés         | #1189, #1187, #1281

(moi aussi, je sais faire des PR avec des titres de mathématiciens :p )

**Description**

Cette PR règle plusieurs problèmes de *versionning* plus ou moins poussés : 

- 500 sur la liste des tutoriels en béta d'un utilisateur
- Titre des tutoriels non versionné sur une version béta
- Suppression d'un chapitre en *draft* qui impacte la version *online*

Pour ce faire, je me suis assez fortement inspiré de la fonction `load_dic()` de Firm1 sur sa PR (#1314), rendons à césar ce qui est à lui, avec cependant le chargement de l'intro et de la conclusion que j'ai extradé hors de cette fonction pour des raisons de performances (la plupart du temps, quand `load_dic()` est employé, c'est pour récupérer le titre de la version versionnée, et non son introduction, donc ça sert à rien de la charger). C'est cette dernière modification qui pourrait introduire des régressions.

Logiquement, y'a des tests unitaires pour verouiller le machin, mais qui peut prévoir toutes les possibilités?

# Note pour QA

Forcément; *checker* tout le workflow des tutos. Plus précisément : 

+ Créer un big-tuto nommé "big tuto", avec une partie "partie 1" qui contient un chapitre "chapitre 1", avec un extrait "extrait 1", et "chapitre 2", et une partie "partie 2" qui contient un chapitre "chapitre 3"
+ Passer le tutoriel en béta, le parcourir pour vérifier que tout est bien accessible (partie et chapitre)
+ Passer le tutoriel en ligne, vérifier que tout est bien accessible (partie et chapitre)
+ Modifier tout les titres en leur rajoutant "(modifié)" (donc "big tuto" → "big tuto (modifié)", et ainsi de suite), et changer le texte de "extrait 1". Checker sur la béta que rien n'as changé (dans partie et chapitre AUSSI, bien regarder l'extrait). Checker en ligne que c'est également le cas (donc sur le tuto lui-même, mais aussi sur la page d'accueil, la liste des tutoriels, la liste des tutoriels de l'utilisateur et sa liste béta).
+ Mettre à jour la béta, vérifier que cette fois, les titres ont changé sur celle-ci.
+ Y aller franchement : supprimer la "partie 2 (modifié)" et le "chapitre 1 (modifié)". Dans la "partie 1 (modifié)", rajouter un "chapitre 4".
+ Vérifier sur la béta que le "chapitre 4" n'est pas apparu et que la partie et le chapitre supprimé en *draft* sont bien présents et accessibles (avec le bon titre et les bons textes, si possible). Faire la même vérification en ligne. 

Adapter ces tests pour les mini-tutoriels (donc juste regarder au titre et au extraits).

Ne pas hésiter à en faire plus et a reporter toute anomalie.

Les utilisateurs du ZdS vous remercient d'avance :)
Je vais enculer les mouches mais ton code n'a pas toujours la même syntaxe dans 
: 
```
    fns = [u'is_big', u'is_mini', u'have_markdown',u'have_html',
        u'have_pdf', u'have_epub', u'get_path']
    attrs = [u'pk',u'authors',u'subcategory',u'image',u'pubdate', u'update',
        u'source', u'sha_draft', u'sha_beta', u'sha_validation',
        u'sha_public']
```

Des fois il y a une espace avant la virgule et des fois non (une espace étant ce qu'il faut), ce serait bien d'homogénéisé tout ça ;)