Fix https://github.com/julianhyde/optiq/issues/226, "User-defined functions should work without explicit schema prefix".

Each schema now has a path, which is a list of schemas to look in when resolving functions. The default path of each schema is itself, but you can override by setting the "path" attribute of a JSON schema. It is a list, and its elements are either strings or lists of strings: the empty list means the root schema, a singleton list or a string means a level 1 schema, and so forth.
Convert CombinerParser.jj into freemarker template to allow custom parser implementations.