allow a rest in play_pattern and play_pattern_timed

I found myself duplicating play_pattern to allow for rests, so thought I'd change the functions themselves...