First commit
Define core interfaces - Peeker and Committer
Define errors
Implement Reader
Tweak errors
Documentation tweak
Implement Writer
Add doc.go