Automatisch erzeugte Manpages.

Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.

Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/sphinx/man/lfun/AddDetail b/doc/sphinx/man/lfun/AddDetail
new file mode 100644
index 0000000..951b48a
--- /dev/null
+++ b/doc/sphinx/man/lfun/AddDetail
@@ -0,0 +1,110 @@
+
+AddDetail()
+***********
+
+
+FUNKTION
+========
+
+   void AddDetail(string|string* keys,
+                  string|string*|mapping|closure desc);
+
+
+DEFINIERT IN
+============
+
+   /std/thing/description.c
+
+
+ARGUMENTE
+=========
+
+   keys
+     String oder Array von Strings mit den Namen der Details.
+   desc
+     String, Mapping, String-Array oder Closure mit/zur Beschreibung.
+
+
+BESCHREIBUNG
+============
+
+   Die Beschreibung der Details <keys> wird gesetzt. Wie die Details
+   bei der Untersuchung aussehen, haengt im wesentlichen vom Typ der
+   Beschreibung <desc> ab:
+     <desc> ist ein String.
+       Beim Untersuchen wird dieser String zurueckgegeben.
+     <desc> ist ein String-Array.
+       Beim Untersuchen wird zufaellig einer der Strings zurueckgegeben.
+     <desc> ist ein Mapping.
+       Das Mapping muss folgenden Aufbau haben:
+         ([0:        "Defaulttext",
+           "rasse1": "r1text", ...]).
+
+       Falls fuer die Rasse des das Detail untersuchenden Spielers ein
+       Eintrag im Mapping existiert, wird der entsprechende Text
+       zurueckgegeben, ansonsten der Defaulttext. Auf diese Weise sind
+       rassenabhaengige Details moeglich. Siehe auch die Beispiele.
+     <desc> ist eine Closure.
+       In diesem Fall wird die Closure ausgefuehrt und das Ergebnis
+       zurueckgegeben. Die Closure bekommt dabei den Namen des Details
+       als Parameter uebergeben.
+
+   Fuer Details koennen Forscherpunkte eingetragen werden.
+
+
+BEISPIELE
+=========
+
+   Ein schlichtes Detail:
+
+     AddDetail(({"sofa","couch"}), "Eine kleine Couch.\n");
+
+   Laengere Details sollten hierbei nicht per Hand umgebrochen werden,
+   sondern man kann hierzu die Funktion break_string() nutzen:
+
+     AddDetail("detail", break_string(
+       "Du wolltest es ja nicht anders, jetzt musst Du Dir dieses "
+       "fuerchterlich lange Detail durchlesen!!!", 78));
+
+   Noetige Zeilenumbrueche bei Zeilenlaengen groesser 77 werden so
+   automatisch generiert.
+   Ein rassenabhaengiges Detail:
+
+     AddDetail(({"bett","bettchen"}),
+       ([0      :"Eine kleines Bett.\n", // Der Defaulttext
+         "zwerg":                        // Die Rasse klein schreiben
+               "Das Bett laedt geradezu zu einem Nickerchen ein.\n"]));
+
+   Und nun ein Detail mit Closure (diese Version ersetzt das Verhalten
+    von AddSpecialDetail).
+
+     int hebel_betaetigt;
+     ...
+     string hebel(string str); // Funktion bekannt machen (Prototyping)
+     ...
+     AddDetail(({"hebel","schalter"}), #'hebel);
+     ...
+     string hebel(string key) {
+       if(hebel_betaetigt)
+         return "Der "+capitalize(key)+" steht auf EIN.\n";
+       else
+         return "Der "+capitalize(key)+" steht auf AUS.\n";
+     }
+
+   Man erhaelt verschiedene Ergebnisse beim Untersuchen, je nachdem
+   ob das Flag hebel_betaetigt gesetzt ist oder nicht.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddReadDetail(), AddSmells(), AddSounds(),
+              AddTouchDetail()
+   Loeschen:  RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
+              RemoveSounds(), RemoveTouchDetail()
+   Daten:     P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS,
+              P_TOUCH_DETAILS, P_SPECIAL_DETAILS
+   Veraltet:  AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
+   Sonstiges: GetDetail(), break_string()
+
+20.01.2015, Zesstra