ftp: provide limited support for command pipelining

Globus(Online) client can issue commands after initiating a transfer.  So far, I've
observed only the CKSM command.  When a command is issued with a transfer in progress
then the responses must be in order.

To satisfy these demands, this patch introduces a blocking-mode for processing commands
when a transfer is underway.  With this mode, the thread that is processing a command
(e.g., 'CKSM') will block until the transfer has completed (successfully or otherwise)
and the final response has been sent.

Target: master