Fixed bug with zero-arity functions.

In my first commit I had changed the parser so that
f () was parsed as 'App(Var "f", [])' instead of
'App(Var "f", [Unit])' so that the generated LLVM function
would have zero arguments, instead of one argument.

Of course, only changing this then broke the typechecking
for these functions, as the expected number of arguments (1)
did not coincide with the actual number of arguments (0).

Reverted to the previous behaviour now. We can still 'fix'
this in the last stage just before emitting LLVM.