Added the ability to create and store procedure types, which rely on argument lists (not thoroughly tested).
Added distinction between formal and actual parameters in parameter list types. This adds more information for type checking in functions and creating error diagnostics.