Better error location when function pointer type inference fails
Allow using * in type restrictions to denote pointers
Replace FunDefArg with a simple Arg node. Added the ExternalVar node.
Introduced the FunTypeSpec node for talking about a fun type
Allow specifiing function types as types (i.e. Int32 -> Int32) in arguments and lib declarations