Moved most syntax handling into TagStream

The TagStream now handles almost all syntax.
Moved most syntax handling into TagStream

Forgot to commit a file.
Cast directly to type instead of intermediate one

Changed cast of:
object -> IEnumerable<object> -> IEnumerable<IDictionary<string,
object>>

- to -

object -> IEnumerable<IDictionary<string, object>>

removing the intermediate type.
Moved TagStream into the Parser namespace

The TagStream was moved into the Raindrop.Backend.Parser namespace in
preparation for splitting the parser into simpler pieces.
Added FarPeekTextReader

The FarPeekTextReader wraps a regular TextReader with a small buffer to
allow peeking up to two characters ahead.

Peeking at two characters is useful for the parser because peeking at
one character might return '<', but the second character may or may not
be a ':' and reading the first could put the parser in an invalid state.

Someone needs to keep track of the extra character that needs to be
read, and a special object for the purpose seems like a good idea.
Added some FarPeekTextReader tests

Added some tests for the FarPeekTextReader. They aren't exhaustive.