Desktop.lns: Support square brackets in keys
Correct locations table for transform_save()

Commit 16387744 introduced a table with locations of temporary, destination and
backup file in various modes as part of the comment for transform_save().  This
corrects two incorrectly listed temporary file locations.

Note that PATH_canon is somewhat misleading, as canonicalized path is always
used when not using NEWFILE save flag, while it is meant to indicate whether
file is created in a directory that contains symlink, or a directory that
contains symlink's target.
Corrections for CVE-2012-0786 tests

- test-put-symlink-augsave.sh - variable $HOSTS_AUGNEW was used to check if
  file was still symlink, while it wasn't set before.  Fix to use
  $HOSTS_AUGSAVE.
- test-put-symlink-augnew.sh, test-put-symlink-augsave.sh - 'test -f'
  dereferences symlink and hence can not be used to check if file is regular
  file or symlink to a regular file.  Use 'test -h' instead.
Fix umask handling when creating new files

  * src/transform.c (transform_save): faulty umask arithmetic would cause
    overly-open file modes when the umask contains "7", as the umask was
    incorrectly subtracted from the target file mode

Fixes CVE-2013-6412, RHBZ#1034261