Add preliminary ast-based decorator
Use ast.fix_missing_locations to fill in lineno, col_offset
Provide filename information using inspect.getsourcefile
Fix syntax error due to invalid line break

Python3 line breaking rules are not always obvious to me.
Fix python2 compatibility issues

The following issues were fixed:

- python2 has no ast.args (as it has no need for this type)
- python2 has different restrictions on the use of the exec statement
Merge branch 'basic-ast-decorator'