reader: separate out Configure
configure: fix bool check
reader: separate out errors
reader/writer/conn: refactoring

* make Conn public
* move transport responsibilities into Conn from Reader/Writer
* supply callbacks for hooking into Conn events
reader/writer: refactor configuration