packed pipeline

this patch adds most of the functionality we wanted to do in #6. Only thing remaining is to make parallel requests to different nodes but that will be done in a separate patch. All the packed pipelining part should work as expected now.