Fixed `draw` to correctly empty leftovers upon end of stream

This was suggested by James Deikun on the mailing list.  The previous
version of `draw` would not empty the leftovers buffer after drawing the
final element, so if you called `draw` multiple times on the end of the
stream it would incorrectly repeat the final action multiple times.
Renamed `loop0` and `loop1` from intercalate to `go0` and `go1`

This is because `loop0` wasn't a loop, as per James Deikun's suggestion.