Fix bugs parsing Chameleon TALES expressions

Previously lingua had problems parsing TALES expressions which contained
either a

 * tal:repeat with a parenthesized expression as the first part
 * prefix (e.g. python:, string:, etc)
 * structure keyword (BBB)
 * multiple expressions separated by a pipe