Need to allow client code to supply serializers and de-serializers for a given b-program (really, for a `BProgramSyncSnapshotIO`).