fix bug in events: hook.map should save results

This fixes an annoying and unintended behavior in the hook'ed events.
Previously, the only way for event processors to save the interstitial
results was to call hook.value manually.   Now, data is saved at the
end of the chain automatically.

To save data, just call next with the data you want to save.

Calling hook.value is no longer required, and not really recommended.