Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/catch b/doc/efun/catch
new file mode 100644
index 0000000..c436b7d
--- /dev/null
+++ b/doc/efun/catch
@@ -0,0 +1,64 @@
+SYNOPSIS
+        mixed catch(expr, expr, ...);
+        mixed catch(expr, expr, ...; modifiers);
+
+BESCHREIBUNG
+        Wertet die Ausdruecke <expr> aus. Wenn kein Fehler auftritt, wird 0
+        zurueck geliefert. Wenn ein Fehler auftritt, wird die Ausfuehrung an
+        diesem Punkt abgebrochen und ein String mit der Fehlermeldung wird
+        zurueck gegeben.
+
+        Systemeigene Fehlermeldungen beginnen mit einem "*", benutzerdefinierte
+        Fehlermeldungen aus throw() und raise_error() (sofern von 0
+        verschieden), werden unveraendert zurueck geliefert.
+
+        Wenn zum Zeitpunkt, zu dem catch() aufgerufen wird, weniger als
+        __CATCH_EVAL_COST__ Rechenticks uebrig sind, wird ein Laufzeitfehler
+        RTE innerhalb von catch() erzeugt (und somit wie jeder andere
+        Fehler abgefangen) und es werden keine Ausdruecke <expr> aus catch()
+        ausgewertet. Der Modifikator 'reserve' kann verwendet werden,
+        einen anderen Wert fuer die Reserve anzugeben.
+
+        Das Verhalten von catch() kann durch <modifiers> veraendert werden:
+
+            'nolog':    Normalerweise wird der Fehler im Fehlerlog
+                        gespeichert, um die Fehlersuche zu erleichtern. Wird
+                        'nolog' gesetzt, wird dieser Log-Eintrag unterdrueckt.
+            'publish':  Normalerweise wird master::runtime_error() fuer einen
+                        Fehler innerhalb eines catch() nicht aufgerufen. Mit
+                        diesem <modifier> wird runtime_error() trotzdem
+                        aufgerufen.
+            'reserve <expr>': <expr> muss eine ganzen Zahl groesser 0
+                        ergeben, welche dann als Rechenreserve anstelle
+                        von __CATCH_EVAL_COST__ verwendet wird. Das Minimum
+                        ist 2 * __MASTER_EVAL_COST__ .
+
+        catch() an sich ist nicht besonders laufzeit-intensiv: es braucht
+        nur etwas mehr Zeit als ein Intra-Objekt Funktionsaufruf.
+        
+        throw() ist ebenfalls nicht sehr teuer, da lediglich einige
+        interne Strukturen aufgeraeumt werden muessen.
+
+        Echte Laufzeitfehlers (ob nun mit oder ohne catch()) auf
+        der anderen Seite ist sehr zeitintensiv.
+
+        catch ist nicht im eigentlichen Sinne eine Efun, sondern eine Compiler
+        Anweisung.
+
+BEISPIEL
+        object obj;
+        string err;
+        if(err = catch(obj = clone_object("/foo/bar/baz")))
+            write("Kann das Objekt nicht clonen. Grund: "+err+"\n");
+
+AENDERUNGEN
+        LDMud 3.2.9 fuehrte den 'nolog' catch() als experimentelles Feature
+            ein.
+        LDMud 3.2.10 implementierte 'nolog' als offizielle Form und fuehrte
+            zudem 'publish' ein.
+        LDMud 3.3.559 verlegte den Test auf verbleibende Rechenticks in die
+            vom catch() umschlossenen Ausfuehrung.
+        LDMud 3.3.560 fuegte den Modifikator 'reserve' ein.
+
+SIEHE AUCH
+        throw(E), raise_error(E), predefined(D), runtime_error(M)