e2e: implement rma()

Add rma_frag get/put functions.
Allocate the rma struct and cache all of the parameters including the completion
message if included.
Determine the number of fragments. For each fragment, get an idle rma_frag,
determine its local and remote offsets, length, and id.
Pack the RMA request header and send it to the first router.
If unable to initialize and send at least one fragment, return EAGAIN.