Rma reusing draft

Implements reusing of rma handles on the receiver side.

This is done by having the garbage collector return buffers no longer in use. This is a hack. Note for instance that there is no way to limit the amount of registered buffers, and also note that clients must make sure to call the GC often enough.