Disposed of readers

-The reader objects in the lexer are now disposed when template
construction is finished.
Added RemoveBlankLine property to ITag

ITag now exposes a RemoveBlankLine property so the text tag can be made
to remove blank lines before block tags.
Added RemovePrecedingBlankLine method to TagFactory

TagFactory now contains a RemovePrecedingBlankLine method that
determines whether the next tag in the stream wants preceding blank
lines to be removed.
Text tag removes trailing blank lines

The text tag now removes one trailing line if if consists of only
whitespace and the next tag requests that preceding blank lines be
removed.
Moved documentation to its own folder

Documentation files were moved into their own folder in preparation for
a documentation overhaul.
Added and split documentation

New documentation was added and existing documentation was divided among
multiple files for easier access to specific concerns.
Renamed ITag -> ITagBuilder

- ITag changed to the more accurate ITagBuilder.
- TagFactory's itags dictionary renamed to builders
- Comment reference to deleted EndTagPredicate removed
Refactored lexer classes into single lexer class

- Several classes in Backend.Lexer were merged into a single Lexer
class. Merged classes: DelimiterReader, FarPeekTextReader,
InfoProvidingTextReader
- TagReader wasn't merged as it makes more sense as a parsing class.
- Lexer reads all text from the stream instead of holding onto a stream.
This uses more memory, but since templating will eventually be cached,
it shouldn't matter in the long run, so simplicity wins.
- The lexer doesn't report the file offset because it's probably not
useful anyway (especially on a Windows system where a newline counts as
two).
- Lexer's line counting functionality was copied from
InfoProvidingTextReader: Line -> CurrentLine, Read -> UpdateState