Add Lisp and a GrammarUtils module

@marekpiechut added support for Lisp. Since selection based evaluation ended up being more complicated than we though he created a GrammarUtils module. Here is a PR consisting of both his changes as well as a few amendments from myself.