Let callbacks update settings info.

This patch lets you return an object from the various callbacks which gets merged with the current settings, giving you a lot more flexibility in tweaking things on the fly without getting messy.
@pnomolos A typo here: `settiongs` instead of `settings`