refactor/redesign io-read-api

i tried my best for this. The result is quite bulky and too slow. Let's discuss in the irc how to optimize vread.