Move test_size, bind_fid and wait_for_completion to common code.

Move wait_for_completion to common code and change simple/pingpong.c to
work with wait_for_completion.
I like this move, but 2 notes.  First, not all of these sizes will work for the ud_pingpong test.  I think best fix for that is for the ud_pingpong test to check the test size against the max_msg_size before attempting to use it.  That change should precede this patch.  Second, I've intentionally avoided using a plethora of very small transfer sizes.  There's almost never differences between 1, 2, 4, 8, or 16 bytes but because people often pull all values into a single graph. The resulting graphs end up showing a heavy bias to a bunch of transfer sizes that are essentially the same.  In this case, we now run sizes of 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, and 64.  That's a lot of runs that are nearly the same.