ForeachLeaf visits all leaves in an test tree, invoking the leafAction callback for each leaf encountered.
Tuples, arrays and dictionaries are considered test containers and not leaves, they are recursed into.
RunTests runs all arr.ai tests in a given path. It returns an error if the path is invalid, contains no test files or
has invalid arr.ai code in any of them.