Set delegatee when `set` is called on a delegate

It seems natural to me that delegates should pass along `set` as well as `get`.

I'm iffy on one thing though -- line 42, `@[name] ||= {}`. Should that maybe be `@[name] ||= Serenade({})`? Or something else altogether? Not sure what could go wrong there.