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(:setting_name) do |value|
  puts "changed :setting_name to #{value}"
end
```
optionally the block takes to additional arguments: 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=`