Parser: tags is never null, get rid of superfluous checks
Parser: Generalize AddTagDirectives to take a source collection
Parser: Register all parsed tag directives in one go
Parser: Add support for multi-document tag directives

The spec at http://yaml.org/spec/1.1/#l-first-document says:

    If the document specifies no directives, it is parsed using the
    same settings as the previous document.

Without this patch, ParseDocumentEnd() unconditionally clears the
collection of tag directives, which causes the following SemanticError:

    While parsing a node, find undefined tag handle.

when parsing a multi-document stream such as:

    %YAML 1.1
    %TAG !x! tag:example.com,2014:
    --- !x!foo
    x: 0
    --- !x!bar
    x: 1

where both instances of !x! stand for for tag:example.com,2014.

The patch postpones the clearing of tagDirectives until a new set of
directives is encountered at the start of a document.
Add unit test for multi-document tag directives
Deserializer: Allow custom type descriptors
Serialization: Add type inspector for readable fields
Serialization: Add combining ("SelectMany") type inspector