always operate on class in super and not on an instance. that's the proper way.
start switching to a more python similar approach of naming, start by naming execution stuff py__call__
further progress in changing to py__call__
fix most issues related to the py__call__ stuff and generalize it.
simplify evaluator.execute, because now everything is using py__call__
get rid of the whole is_callable stuff, because now we can just check for hasattr(obj, 'py__call__')
Executable -> Executed
get rid of the evaluate_generator param
remove a very old function call in FunctionExecution that had no effect
Nicer usage of py_call within InstanceElement and Python 2.7 compatibility
A module shouldn't be callable.
Calling an InstanceElement of an Instance of CompiledObject doesn't raise an error anymore. Yes, it's really that complicated.