codegen: disambiguate multiple sexp forms correctly

Add a failing test for defn with no arguments. To fix it Ast.Function
and Ast.Prototype need to be modified to disambiguate between functions
with zero arguments and "main" functions.