SYNOPSIS
  string normalize (string path, void|string user)

DESCRIPTION
  Normalize and return the filename <path>.
  If <user> is given, it is used to compliment relative filenames.

  Besides the elimination of embedded '..' the function expands
  following constructs:
    /...        is treated normally.
    ~<name>/... is replaced by /w/<name>/...
    ~/...       is replaced by /w/<user/... if <user> is defined
    +<name>/... is replaced by /d/<name>/...
    .(.)/...    is replaced by <file_name(THIS)::DirPart>/...
    ...         is replaced by <TP.CurrentDir>/... if TP is <user>
                            by <file_name(THIS)::DirPart>/... else.

