the rpc transition will require sync and async objects to share a single io buffer (since defining serializers on async is an immense pain in the tail, slow, and ultimately not necessary). a generic buffer class allows us to reuse existing serializers more readily (reuse them at all, even). Change-Id: I5ebba8449f26f2bb76016818928183c7e0123be0