Separate generic AST_IDENTIFIER and EXP_IDENTIFIER.

Use EXP_IDENTIFIER for the primary expression, and AST_IDENTIFIER for
non-expression uses.
Implement lightweight functions.

When a function does not use eval, arguments, with and has no inner
functions it does not need a closure. We can call it without creating
a variable object if we store local variables on the stack instead.