Make channels buffered to prevent goroutines leak.

Users may ignore done message. Also, functions which runs two goroutines that writes to one channel will always produce a leak.
Killable must send kill message if user didn't.