A big cleanup operation in the Generics subdirectory.

* [COWSAY,EXT] Allow atom and list-of_atoms input to cowsay/2.
* [COWSAY,EXT] Added cowsay/1 wrapper.
* [COWSAY,EXT] Added cowspeak/1, a wrapper for cowsay and speech.
* [COWSAY,EXT] Allow atom and list-of_atoms input to speech/1.
* [DB_EXT,NEW] Added db_replace[_novel]/2 for making simple factum-replacements.
* [DB_EXT,SC] Renamed assert_novel/1 to db_add_novel/1.
* [DB_EXT,SC] Added wrapper db_add/1 for consistency.
* [DEB_EXT,SC] Removed write_attribute_value_pair/3.
* [FILE_EXT,SC] Removed concat_path/3 and all uses of it; using swipl builtins instead.
* [FILE_EXT,NEW] Completely rewrote nested_dir_name/[2,3].
* [HTTP_EXT,SC] Removed this module; contents move over to module HTTP.
* [LIST_EXT,NEW] Completely rewrote the depairing predicate (removing the old version). The new versions are called pair/3 and pairs/3. Improvements:
** Work with three different pair formats. Easily extendible.
** From pairs to depairs; but also from depairs to pairs.
* [OS_EXT,EXT] Extended delete_files/2 to
** handle multiple extensions registered to the same file type;
** handle multiple file types (given in a list);
** check whether a file type is at least registered to one extension;
** throw an existence error instead of failing.
* [PARSE_EXT,SC] Renamed several public predicates so that it is more clear to which module they belong, e.g. from atom/2 to parse_atom/2.
* [PARSE_EXT,SC] Added determinism to parse_atom/2.
* [PARSE_EXT,DOC] Added documentation to parse_atom/2 and parse_char/[2,3].
* [PARSE_EXT,FIX] Added a check to one of the parse_re/4 clauses (i.e., =|L > 0|=) to avoid infinite looping. (L=0 should fail on this particular clause.)
* [PRINT_EXT,EXT] Allow codes-handlers for print_list/[2,3].
* [SET_THEORY,EXT] Allow list arguments to cardinality/2 and equinumerous/2.