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...
Introduce new `individual_title` field in contacts

For Individual contacts, add a Title field along with the other name
fields. This one sits between the Individual Prefix and First Name
fields, which is the right place for academic and other titles (not
only) in Germany.

It is a free-form text field, as there are way too many obscure titles
and possible combinations of titles for any kind of exhaustive option
list. Also, this field is generally not processed, but rather just
included verbatim wherever the name is used -- so there is no real need
for normalisation.

We are unsure about the naming of this field. We could just call it
`title`; but this might be too unspecific and thus confusing... So we
opted for `individual_title` (in line with
`individual_prefix`/`individual_suffix`) -- but we are open for other
suggestions.

Note: The field is conditional in the templates, but it's added
unconditionally at PHP level for now. That's because we are yet unsure
how to handle the option best.

For now, we are only dealing with the main contact screen. There are
various other places dealing with name fields (especially for billing
contacts and honoree) -- each implementing it seperately (and thus
rather inconsistently...) in a hard-coded fashion. Adapting all of these
will be a crazy amount of work, so we are punting this for now.

(The Right Thing To Do (TM) probably would be implementing some central
name handling code to use everywhere...)
Make `individual_title` field optional

Add a config setting to make display of the "Individual Title" input
field (in contact edit forms) optional.

(This doesn't affect contact view, as the name displayed there is
determined by the "Individual Display Name Format" template instead.)

This is a minimal approach, adding just the title setting. Perhaps it
might be preferable to go for full name field configurability instead,
while at it?...

The setting is placed in the "Display Preferences", next to the
"Individual Display Name Format". However, it could be placed next to
"Editing Contacts" (also in "Display Preferences") just as well -- it's
somewhat related to both...

Note: We do nothing about initialisation of the new setting upon
installation/upgrade. This doesn't seem necessary, as the setting
defaults to off, and the setting code appears to handle missing settings
just fine...