refactored error handling

created seperate templateError type. scanner or chunks now hold
location in file. This lets the executer report line numbers as well
as the scanner and parser.
bugfix: reflect.Value.Call returns Value items, called wants interface{}
better detection of boolean values
implement execution of 'not' operator
pass source file name to parser for error reporting
updated tests and docs