INT-2981 Add Support for 'mv' to (S)FTP Outbound Gateways

I took the opportunity to do a little refatoring (mainly change commands and options to `enum`s, and change a big if/else block to a switch statement).

You may find it easier to review each commit individually.