Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/clear_bit b/doc/efun/clear_bit
new file mode 100644
index 0000000..93f15ec
--- /dev/null
+++ b/doc/efun/clear_bit
@@ -0,0 +1,35 @@
+SYNOPSIS
+        string clear_bit(string str, int n);
+
+BESCHREIBUNG
+        Gibt einen neuen String zurueck, in dem das n-te Bit im String <str>
+        nicht gesetzt ist. Dabei wird <str> selbst nicht veraendert.
+
+        Jedes Zeichen enthaelt sechs Bits. So kann in jedem Zeichen eine Zahl
+        zwischen 0 und 63 (2^6=64) gespeichert werden. Das erste Zeichen ist
+        der Leerschlag " " mit Wert 0. Das erste Zeichen im String ist jenes
+        mit den niedrigsten Bits (0 bis 5).
+
+BEISPIELE
+        string s;
+        s = clear_bit("_", 5);
+
+        Weil "_" den hoechsten moeglichen Wert enthaelt (63), enthaelt die
+        Variable s nun das Zeichen "?", das dem Wert 31 entspricht (63-2^5=31).
+
+        string s;
+        s = clear_bit("?<",3);
+        s = clear_bit(s, 8);
+
+        s enthaelt nun den String "78". "?" entspricht dem Wert 31 und "<" dem
+        Wert 28. "?<" entspricht also dem Wert 31+28<<6=31+1792=1823, was in
+        Binaerschreibweise (hoechstes Bit rechts) 11111000111 ergibt. Werden
+        aus dieser Zahl die Bits 3 und 8 (die Nummerierung beginnt mit dem
+        0. Bit) ergibt dann: 11101000011. Die ersten 6 Bits 010111 sind in
+        Dezimalschreibweise 23. Die zweiten 6 Bits (0)11000 ergeben 24 in
+        Dezimalschreibweise. Nun entspricht der Wert 23 dem Zeichen "7" und
+        der Wert 24 dem Zeichen "8". Der String s enthaelt also "78".
+
+SIEHE AUCH
+        set_bit(E), next_bit(E), last_bit(E), test_bit(E), count_bits(E),
+        and_bits(E), or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)