'Feature_table.base_table' corrected

The builtin function

    () (f:A->B, a:A): B

has not been entered correctly.

	modified:   ocaml/feature_table.ml
Added 'reset_formal_generics'

For each parsing of a source file or an interface file the formal
generics in the class table have to be reseted.

	modified:   class_table.ml
	modified:   class_table.mli
	modified:   context.ml
Downgrade, ghost, normalize in signature

Constant signatures which have a predicate or a function type can
be downgraded to a callable signature. In order to do this the
arguments and the return type had to be extracted from the
predicate/function type and from the argument (which can be a tuple)
all possible arguments had to be extracted.

Ghost functions are represented within the signature. Ghost types no
longer exist.

The signatures contain information if the feature is a ghost function
or a procedure. A normalized signature resets the corresponding flags.
The feature map contains only normalized signatures in order to avoid
double entries (e.g. in the private view we can have a not first class
function which must be exported as a procedure).

	modified:   ocaml/class_table.ml
	modified:   ocaml/class_table.mli
	modified:   ocaml/context.ml
	modified:   ocaml/feature_table.ml
	modified:   ocaml/parser.mly
	modified:   ocaml/signature.ml