Supporting custom storage in StateToContent

This is useful for customers to use their own Storage mechanism, as long as it supports the same interface that streamhub-sdk/storage does.