Add data attribute to FieldCollation

Adds a data attribute to `FieldCollation` so that the data in the input PPField iterator can be accessed by downstream consumers of `FieldCollation` objects.
Integration tests FTW! :dizzy: 

Another benefit of your second suggestion @bjlittle is that it brings `data()` in line with the other `FieldCollation` `@property` methods in that they do no processing of their own but just call `_calculate_structure()` as needed and let that do all the processing. I'll get making the changes then!