Process greeting templates with Smarty

When expanding greeting templates, after substituting the CiviCRM
tokens, pass the result through Smarty.

This way it becomes possible to include conditionals (or other types of
fancy processing) in greeting templates. Example:

  {if "{contact.custom_10}"=="Du"}
    {if "{contact.individual_prefix}"=="Frau"}
      Liebe
    {elseif "{contact.individual_prefix}"=="Herr"}
      Lieber
    {else}
      Liebe/r
    {/if}
    {contact.first_name}
  {else}
    {if "{contact.individual_prefix}"=="Frau"}
      Liebe Frau
    {elseif "{contact.individual_prefix}"=="Herr"}
      Lieber Herr
    {else}
      Liebe/r Herr oder Frau
    {/if}
    {contact.last_name}
  {/if}

For now, the Smarty processing is always active. Perhaps we should hide
it behind a config option instead? For correctly written templates, it
should make no difference; however, error situations become more
confusing: Smarty syntax errors can cause obscure PHP error messages;
and Smarty will try to parse unexpanded CiviCRM tokes, generating error
messages, instead of just leaving them unexpanded -- so it might be
desirable not to enable Smarty by default... OTOH, the greeting
templates are generally only set up during the implementation phase, and
never touched by mortal users -- so the more fragile syntax shouldn't
really be a problem...