fixed upgrade script by removing the special case for grpmin|max(expr1, expr2) -> min|max(expr1, filter=expr2) as it is in fact not needed and caused problems in some cases
added a function to utils which finds the first occurrence of a character in a string expression at a specific depth in the expression (stack of parentheses/brackets). This is not used currently but might be useful in the future. I developed it to fix the upgrade script before I realized the whole thing could be removed instead.
* use add_context for SyntaxError because some do not contain the faulty string  (eg non-keyword arg after keyword arg).
* catch exceptions in the ast.parse phase of our parse() function because some Syntax errors can be raised at that point.
more "style" improvements suggested by PyCharm
update TODO
update version
added "view" command to open vitables
added experimental chart functions