fix Core.Lang.Expr: Match definition and add Core.Lang.Ty: TName
-   TName :: String -> Core.Ty is for referring user-defined type
    Recursive type shouldn't be expanded automatically.

-   Add the missing expression to match in Match definition

-   Fix various things: getPatternVars and the missng Literal.LUnit