Adding cycle tags.

These are somewhat modified from Django's version.  In an effort to
reduce ambiguity (since blocks can go beyond the %} tag), cycle now
takes a "list", which is a space-separated bracket-enclosed expression,
instead of a sequence of primitives.  To help support this, list is now
a first-class expression which can be nested and used at any time, and
parentheses were added to the core language (for some reason, this is
not the case for Django templates).