Use closures instead of eval/exec for parsing callbacks

Use closures instead because they:
 * are parsed before execution: showing syntax errors ASAP
 * allow code to remain in Python source files:
  - allows tracebacks access to the specific source line that went wrong
 * easier to get right
  - editing is easier due to syntax highlighting
  - testing is easier because syntax errors are caught earlier

The only reason for exec()ing generated code was to:
 A) control the docstring of the callback
 B) parameterize the token/rule name

A) is now accomplished by assigning to .__doc__. B) is accomplished by
closing over the `name` or `rule_name` variables respectively.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
Execute code SECTIONs in grammar defintion with source info set

Ensure that both the source filename and line numbers are available and
correct. This permits tracebacks flowing through that code to be
displayed correctly.

Line number information is now preserved for SECTION tokens and finally
attached to the AST.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
Merge pull request #11 from muggenhor/closures-instead-of-exec

Use closures instead of exec and attach location info when we *do* exec()

Doubles parsing performance for pypy!