Add ability to wrap generator with try-finally block

var g = (function () {
	try { yield "first"; }
	finally { print("finally"); }
})();
g.next();
g.next();
Create different IRFactory for different evaluators.
generators compilation WIP