Removed TestHarness

TestHarness was removed since it wasn't being run nearly as much as
simply testing that inputs resulted in the expected output.
TagStruct made self-applying

-TagStruct now has its own Apply method which is filled in during
construction.
-TagApplyer deleted since it's no longer needed.
-Apply method was removed from ITag since it can be called through the
TagStruct instead.
-TagFactory.ApplyITag was removed since its only caller (TagApplyer) was
also removed.
-Tag builders made to insert their own Apply methods into the TagStruct.
Readers moved to Lexer folder

DelimiterReader, FarPeekTextReader and InfoProvidingTextReader were
moved into the Lexer folder since they have more to do with lexing
(translating from Raindrop syntax to internal syntax) than parsing
(building and validating the tree).

No code changes were made except to update the project file to recognize
the new file locations.
Readers moved to Lexer namespace

-InfoProvidingTextReader, FarPeekTextReader and DelimiterReader were
moved into the Lexer namespace to match their new folder location.
-Using statements adjusted to match.
-Unused using statements removed.
Added TagReader to replace InfoProvidingTextReader

The TagReader manipulates the various other readers in the Lexer
namespace to strip away syntax for easier handling by the upper layers.

-Code outside the Lexer namespace now uses TagReaders instead of
InfoProvidingTextReaders.
-Most functionality was moved out of the TagStream into the TagReader.
-The TagStream may have its remaining functionality moved elsewhere and
be deleted later if it doesn't pick up some new use.
Changed term: index -> offset

-Changed use of the term "index" to "offset" for the readers since
offset seems more natural for streams.
-Added clarifying comment to InfoProvidingTextReader's line calculation.
Added line and offset data to TagData

-TagData now offers Line and Offset information about where the tag
begins in the data source.
-TagReader changed to fill out Line and Offset information in TagData.
-TagData file summary added.
Renamed TagData.ID -> TagData.Name

-TagData.ID was renamed to TagData.ID to be consistent with TagContext.
Renamed TagInterface file -> ITag

-Renamed the TagInterface file to ITag to match its contents.
Replaced EndTagPredicate with System.Predicate

-System.Predicate already exists for the use EndTagPredicate was used
for, so EndTagPredicate was replaced with System.Predicate.
Moved TagData into its own file in Backend

-TagData was moved into its own file in the Backend namespace so it can
be used by multiple steps of construction.
Reader property added to TagData

-A Reader property of type TagReader was added to TagData so the reader
can be passed along with it.
Initialized TagData.Reader when constructing

-TagReader now initializes TagData.Reader when constructing a TagData.