sources and sinks should use io.Reader/Writer

(Gotcha - I remember that but thought it was a newer change. Looks like it has been present since Go 1 - http://nathanleclaire.com/blog/2014/04/27/a-surprising-feature-of-golang-that-colored-me-impressed/ ... https://news.ycombinator.com/item?id=7655948)