renamed Symbol submodules to remove the redundant "S"
another update on types and type inference, quite big.
All substitution are now based on PersistentHashtbl, and term substitutions
embed an underlying type substitution;
TypeInference (not tested) uses this new kind of substitutions
and TypeUnif to perform inference;
no more mutable type variables, but scopes everywhere, same as term variables