ftp: add support for MFMT, MFCT and MFF commands

One problematic part of FTP specification is how the client can set
attributes of a file.  Perhaps most common use-case is to set the
time-stamps of an uploaded file to match that of the file's source,
although setting the (Unix) permissions mode is also desired.

While FTP provides no standard way of achieving this, the closest to
a standard approach is through the MFF, MFMT and MFCT commands.  The
MFF command allows the client to request that any set of Facts be modified,
while the MFMT and MFCT commands provide a simple mechanism to modify a
file's MODIFY and CREATE facts.

This patch adds support for MFF, MFMT and MFCT.  The MFF command allows
the client to modify the Creation, Modification times and the Unix
permission mode.

When uploading a file, the ncftp client will try to use MFF to set the
creation and modification times, falling back to just MFMT if that fails.
The Globus FTP client does not use MFMT, MFCT or MFF, but the Globus server
supports MFMT, so this may change in the future.

This patch also adds support for changing timestamps within dCache.
Any update results in the file or directory having a creation time less
than or equal to the other timestampes and an access time greater than
or equal to all other timestamps.  This may result in the namespace not
honouring the requested change.

Target: master