Handle errors better, fixes #29

Where there is a possibility of error, pass it to `next` some way or
another (through a custom `done` function or otherwise).