Support tagged binary data in keys and values

Binary strings were being read out base64 encoded, ignoring the binary tag. This adds support for binary base64-encoded data in YAML documents. It establishes a structure for supporting other specific tags (e.g. forcing structures to be cast to a particular type) but doesn't add any other types.

This was added because the binary data should either be read correctly or an exception thrown, not be read without being decoded. Our fixtures have binary encoded data in them, hence seeing this issue.