NaiveBroadcast changed to be more naive; uses a time-to-live parameter to decide when to stop broadcasting messages