Support multiple-level child-to-parent queries

Convert records to lists, then use unlist to flatten each record before
converting to a data frame.

This change allows correct conversion of multiple-level child-to-parent
relationships in queries, e.g.
SELECT Name, Account.Name, Account.Parent.Name FROM Contact