proto stores terminals by reference by default, add pass_through transform, all expression generators use pass_through transform by default, many more changes