FileCollectionCodec.kt

Refactor serialization for instant execution cache so that property values are writen/read as `Provider` instances, and these provider instances connected in as the value of the property. This will allow providers whose value cannot be eagerly evaluated to be serialized differently to those whose value is known when serializing.