Added escape tag

A new tag was added: <:escape sequence /:>.

`sequence` can be any combination of one or more of `lc` and `rc`,
seperated by spaces. Each `lc` will result in one `<:` being output, and
each `rc` will result in one `:>` being output.

TagStream.StripCaps() was made public. TagStream.Escape() was added so
the escape tag could delegate escaping to the TagStream rather than
duplicate the endcaps.
Removed default constructors from tags

Default constructors were removed from some tags to make them consistent
with everything else, and so that they would provide more useful
information to exceptions.

- Removed the default constructor from Tag
- Removed the default constructor from EndTag
- Added documentation for Tag.RequireKey()
- Fixed TagFactory to use non-default EOFTag constructor
- Fixed BlockTag to use non-default EOFTag constructor
- Corrected erroneous file summary copied from Tag.cs to DataTag.cs
without changing names and summary
- Made the TextTag.cs file summary consistent with other tag file
summaries.