Add pattern for recognizing expressions.

This is analogous to *filter-pattern* (used to recognize variables),
and is useful for similar reasons (i.e. recognizing expressions when
parsing).
Add defaults in expressions when using include.

Previously, using {% include ... with ... %} would add defaults to
identifiers in variable tags ({{ ... }}), but not to identifiers in
expression tags ({% ... %}).

This commit makes sure that defaults are added in expressions as well.

Example:
  Assume that foo.html contains the following:
    foo is {{foo}}
    foo is {% ifequal foo "bar" %}bar{% else %}not bar{% endifequal %}

  Previously, {% include foo.html with foo="bar" %} would produce:
    foo is bar
    foo is not bar

  After this commit, it instead produces:
    foo is bar
    foo is bar
Add *tag-open-pattern*/*tag-close-pattern*.

These are analogous to *filter-open-pattern*/*filter-close-pattern*.
Clean up/reduce duplication in template-parser.
Use consistent indentation in template-parser.
Don't put extra spaces in tags when adding defaults.

This was causing a test to fail.
Avoid trailing space in to-expression-string.
Make include test verify that defaults are added in expressions.
Merge pull request #55 from aeriksson/add-defaults-in-expressions

Add defaults to identifiers in expressions when using {% include ... with ... %}