Enum variants should be read in as an array

This patch adds support for serializing/deserializing variants that have more than one element in them. This is a breaking change, as it serializes the variant arguments as a list, even if it has only one element in it.