Used 'Term_table' in 'Feature_map' of 'Feature_table'

Inheritance of features not yet implemented.

	modified:   class_table.ml
	modified:   feature_table.ml
	modified:   term.ml
Splitted up the formal generics array

Instead of using '(int*type_term) array' to represent the formal generics
we use two arrays, one for the names and one for the concepts.

Reason: There are functions which use only the concepts or only the names
and functions which have access only to one of the arrays but need to call
some other function which used to receive both without necessity.

	modified:   class_table.ml
	modified:   class_table.mli
	modified:   context.ml
	modified:   feature_table.ml
	modified:   feature_table.mli
Visibility of base classes

The base classes are only visible in the corresponding modules or
in modules which use the corresponding modules.

	modified:   class_table.ml
	modified:   class_table.mli
	modified:   context.ml
	modified:   context.mli
	modified:   eiffelc.ml
	modified:   feature_table.ml
	modified:   feature_table.mli
Added a fresh copy of a string to the symbol table

This is a safety feature. With this change it is guaranteed that no
references are hold to strings in the symbol table.

Note: With 'ST.string idx' the internal string of the symbol table is
returned. If this string is manipulated the symbol table is corrupted.

	modified:   support.ml
Visibility of builtin features

The builtin features are only visible in the corresponding modules or
in modules which use the corresponding modules.

	modified:   class_table.ml
	modified:   feature_table.ml
Used 'is_private' and 'is_public' from 'Module_table'

... and not from 'Support.Parse_info'

Remark: More cleanup is necessary for assertions. The prover still
uses 'is_use_interface' from 'Parse_info'.

	modified:   class_table.ml
	modified:   class_table.mli
	modified:   eiffelc.ml
	modified:   feature_table.ml
	modified:   feature_table.mli
	modified:   support.ml
Some minor editorial changes

	modified:   class_table.ml
	modified:   feature_table.ml
	modified:   signature.ml
	modified:   term.ml
	modified:   term_builder.ml
Module modes completely moved into Module_table

A module can be either in private mode, interface check mode or
interface use mode.

The duplicate information in Support.Parse_info has been removed.

	modified:   class_table.ml
	modified:   class_table.mli
	modified:   context.ml
	modified:   context.mli
	modified:   eiffelc.ml
	modified:   feature_table.ml
	modified:   feature_table.mli
	modified:   module_table.ml
	modified:   module_table.mli
	modified:   prover.ml
	modified:   support.ml
Included formal generics info into 'TVars'

The module 'TVars' contains now then names and the concepts of the formal
generics beside the local type variables and the global type variables
imported from global features. Therefore 'TVars' together with the class table
provides a complete context for any type term, i.e. the triple (tp,tvars,ct)
defines a unique type in the type system.

This functionality is not yet used in 'Context'.

	modified:   class_table.ml
	modified:   context.ml
	modified:   context.mli
	modified:   signature.ml
	modified:   term.ml
	modified:   term_builder.ml