callbacks for settings

implements and specs callbacks for settings. allows you to register a block or callback object that responds to #call to a specific setting with:
```
Setting.register_callback(:host_name) do |value, old_value|
  puts "=> Hostname changed from #{old_value} to #{value}."  
end

Setting.host_name = "openproject-demo.org"
=> Hostname changed from openproject.org to openproject-demo.org.
```
the block takes three arguments, the last two are optional: the new setting value, the old setting value and the setting name itself.

callbacks only get fired when settings are set through `Setting[:setting_name]=` and `Setting.setting_name=`.

callbacks will get fired regardless of whether the actual value changed or not.