Type checking for the Assura contract language.
Builds a TypeEnv (type environment) from a ResolvedFile by mapping
each symbol in the symbol table to its Type. For T013 this creates the
scaffolding: type environment construction and the type_check entry
point. Actual expression-level type checking (T014-T018) builds on this.