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.
The size_option does this, but in an odd way.  The values 0 in the list are the default sizes that are tested.  The values 1 are included when all is selected.  The original intent of size_option was to support different 'levels' of test runs, but only default or all have been defined.  Maybe size_option could be a bit field instead, with flags for MSG_DEF, RMA_DEF, DGRAM_DEF, MSG_ALL, RMA_ALL, DGRAM_ALL, MSG_TEST, etc.  (I don't know what to call the 'test' option.)  All can be a full set of sizes from 1 to huge (tests stop at max_msg_size).  The default can be the range of values - 64B, 4K, 64K, 1M (different for DGRAM).  'Test' can be something less than all from 64B to 6M