The puzzle_update_channel_and_sheet function is modified here to
accept an old_puzzle argument in addition to the puzzle argument. By
using this it can decide whether there's any change in the sheet or
channel data before setting it.
This optimization avoids Slack reporting things like:
Turbot renamed the channel from "hunt-puzzle" to "hunt-puzzle"
Which is obviously just noise.