adds collection for creating dynamic fields based on associations

The intended usage of this is to add a dynamic number of columns to a CSV representation. We needed to do so at Chargify because we have a complex set of reports that we need to generate and associated data needed to be included. Please let me know what you think. We are using it in production and it works great!