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 processing an FTP command will
block until the transfer has completed (successfully or otherwise) and the final
response has been sent.

Target: master