Move write_images to concert.storage

because of a future circular dependency between
coroutines.sinks and storage modules
Switch Walkers to coroutine-based approach