Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/first_inventory b/doc/efun/first_inventory
new file mode 100644
index 0000000..99be7fd
--- /dev/null
+++ b/doc/efun/first_inventory
@@ -0,0 +1,34 @@
+SYNOPSIS
+        object first_inventory();
+        object first_inventory(string ob);
+        object first_inventory(object ob);
+
+BESCHREIBUNG
+        Liefert das erste Objekt im Inventory von <obj>, wobei <obj> entweder
+        ein Objekt oder der Name eines Objekts ist. Wenn <obj> nicht angegeben
+        wird, wird standardmaessig this_object() verwendet.
+
+BEISPIELE
+        Diese Efun verwendet man am haeufigsten im folgenden Kontext:
+
+            for(obj=first_inventory(container);obj;obj=next_inventory(obj))
+            {
+                <irgendwelcher Code>
+            }
+
+        ACHTUNG: Wenn das Objekt <obj> innerhalb von <irgendwelcher Code>
+        bewegt wird, liefert next_inventory() ein Objekt aus dem neuen
+        Inventory von <obj>. Auch sollte next_inventory() nicht fuer
+        zerstoerte Objekte <obj> aufgerufen werden. Fuer den Fall, dass
+        <obj> bewegt und/oder zerstoert wird, ist folgende Loesung
+        vorzuziehen:
+
+            for(obj=first_inventory(container);obj;)
+            {
+                next=next_inventory(obj);
+                <irgendwelcher Code mit Moves oder Removes>
+                obj=next;
+            }
+
+SIEHE AUCH
+        next_inventory(E), all_inventory(E), environment(E), deep_inventory(E)