introduce Cursor object to track line info

additionally:

- rename take_* methods/symbols on Reader to read_*
- fix missing direct logic on peek_line
- add rdoc