fix handling of recipients in message responder

This is the same problem we had earlier with references.  The problem
was caused by a fix to the client library that guarantees that multiple
XML elements on the same level with the same name are treated
correctly.  We want element names to always become hash keys.  If
there are multiple elements with the same name at the same level, they
will be converted to an array with separate hashes:

  <list>
    <item>a</item>
    <item>b</item>
  </list>

will be converted to

  {
    "list" =>
      [
        { "item" => "a" },
        { "item" => "b" },
      ]
  }

This means that we always have to unwrap the array values before we can
use them.

We didn't catch this problem because the responder unit tests don't use
xml_to_hash to generate the hash dynamically from XML test data, but the
test hashes are hard-coded.

I only adjusted the hard-coded test values in this commit; we will still
have to think of a way to make the test suite more useful, possibly by
adding integration tests where XML test data passes through all
processing methods first to make sure that the test data is identical to
data we would receive from actual remote Libertree servers.