Improving International Name and Greetings handling

This series implements the changes laid out in http://civicrm.org/blogs/antrik/enhancing-greetings-handling , for better supporting the requirements of organisations in Germany and other non-English-speaking regions.

The first commit in this series implements Smarty processing of greeting templates, to allow for making elements of the greeting texts conditional on data in other contact fields.

The second commit adds the new Academic Title field in the Name block for Individual contacts, to store academic and other titles that need to be included at the beginning of a name, but after the prefix, not in place of it. The third commit adds a configuration setting to allow hiding this field from the UI if not needed.

The fourth commit adds the new Communication Style field in the Communication Preferences block, to be used mostly for driving conditional greeting templates. (With 'Formal' and 'Familiar' options by default.) The fifth and final commit adds the UI bits to configure the available options for this field.

Note: civicrm_generated.mysql needs a regen after these changes, to pick up the default option values for Communication Style -- but I don't know how this should be handled in pull requests. (Why do we have generated files in the repository?...)

I'm not sure whether to call this series an RFC, or an actual pull request... We consider it pretty much ready from our side (apart from some less important bits of functionality that we left out for now); however, there are quite a few points we are not entirely sure about. (See the individual commit messages for details.) We are eager to incorporate any constructive feedback and put out a new iteration of the pull request in a timely fashion, should the need arise :-)