Only because the existing interface behaves that way. The old `serialize_records` simply returned nil if the response didn't respond to `records`. Since I'm planning on releasing this as a minor version, I didn't want to break any APIs, even though there are some bad ones (like this).

Ideally, we would raise a specific error if the response object didn't conform to what ARem is expecting. That way, we always return the same object as opposed to serialized ARem objects sometimes and the raw response others. Endpoints that behave differently should use the `remote_call` method, which encapsulates the RPC call, but leaves it up to the implementer to deal with the response.