Match subclasses when encoding data

## Problem

We ran into a problem where we tried to use `HashWithIndifferentAccess` for storing the contact set. However, this fails the conditionals in `XmlProcessor.encode_data`, because that method does an exact match on class name.

## Solution

Use the `===` method from case statements, which checks for `is_a?` status when applied to classes. Then subclasses will match their subclass's case.