Parse document directly instead of chunking into section lines

Chunking the document into section lines before parsing was both inefficient and introducing contextual errors. I've switched the logic around so that the document can be parsed directly off the reader without changing the result in any way.

- remove the section reader and instead parse the sections off main reader
- add parse method that handles parsing logic previously in document
- parse downwards from sections rather than through the next_block method
- add mode to next_block method where it only looks for blocks
- make section title parsing more efficient
- rearrange some of the methods in Lexer
- rename heading_* symbols to section_*
- add tests for block level
- TomDoc
- some source code tidying