change arg of Type.Con from (string * Type.t) to (string * Type.t list)

I believe there are three possible arguments to a type constructor:
zero, 1, or many, so this is best represented as a list:

zero args: `int`
one arg: `int list`, `'a tree`
many args: `('a, 'b) either`, `(int, string) either`
added multiple args for tycons to parser
added nullary tycons to parser