Introduced a Resource protocol to provide more flexibility for custom pipeline sources
Added back the infoset cache for sources using the new Resource protocol. I'll probably not make it the default behavior going forward.