Switch from OpenStruct to Struct for item collections.

While OpenStruct is much more convenient in these contexts they result in an unnecessary and unintuitive extra layer of data when serialized to json in Wave.  By switching to Struct we maintain the same "dot notation" for accessing data but without the extra layer of data in serialization.