Define version-sensitive attributes in a recipe

This allows the postgresql cookbook to continue working after default
attributes are used to set the postgresql version. The postgresql
version is used to create many other attributes containing that version
number.

By defining these version-sensitive attributes in a recipe, they can
safely be defined knowing that all attributes files have already been
loaded and that node[:postgresql][:version] has its final value.

Otherwise, setting a default postgresql version in an attribute file
outside the cookbook has no coherent effect.

A caveat of this is that you can't override any config_version
attributes anymore using default attributes defined in attribute files.
You have to use force_default. But it turns out that most of these
attributes should not really be changed, except for the postgresql.conf
fields.