Make storage protocol callback-based.
Refactored code to use core.async
Converting global states to core.async
Fix merge errors.