Add a callback to hero:start_treasure and move on_obtain* events to map.

There are no more events on the hero. They were too error-prone because
the hero persists accross map changes.
Improve the parameters of on_obtaining/on_obtained events.