Template's public properties better controlled

Template's Text and Map properties are publicly read-only now.
Renamed EofTag -> TemplateEndTag

- EofTag is now TemplateEndTag for better symmetry with TemplateTag and
consistency with the other block tags.
- TemplateEndTag is now ended by `/template` instead of `eof`
TemplateEndTag now uses Helpers.BuildTag

Every tag is constructed in the Factory with a valid TagData, so
TemplateEndTag doesn't need to do anything special to build any more.
Fixed crash when last symbol in file was right cap

The lexer accidentally reported a right cap at the very end of a
template as being part of the symbol immediately before. Now it
identifies the right cap as an independent symbol.
Raindrop constructor converted to use Factory.Build

The Raindrop constructor makes a bootstrap template and passes it to
Factory.Build. This way, it doesn't need the DevBuildTag method any
more.
Added explanation for bootstrap template
Factory.DevBuildTag deleted

Nobody uses Factory.DevBuildTag any more. Now it can be deleted! Hooray!
Made TagStruct readonly

TagStruct can no longer be mutated after construction.
Renamed TagStruct -> Tag
Visual Studio updated its metadata
Summarized Template methods
Added error checking to Template.RecalculateLine

Template.RecalculateLine wasn't designed to support rewinding the
template. Now it detects and throws in such a situation.