Fix various fire sound bugs

Using `on_construct` and `on_destruct` makes sure that the update functions are called in all cases where the node placed or removed (not only when the player digs a fire node).
`minetest.after` is used to make sure the node is already replaced at the position (otherwise the old node is still present in `on_destruct`).
Fixes #274.