Fix empty-path case of futimesat()

The Linux futimesat(2) specifies that:

  Glibc notes: If pathname is  NULL, then the glibc futimesat() wrapper
  function updates the times for the file referred to by dirfd.

In other words, when pathname==NULL, futimesat() behaves like futimes(),
at this works whether or not the given fd is a directory.

We did not support this corner case, and it turns out that OpenJDK
uses exactly this case: futimesat(fd, NULL, times), so not supporting
this resulted in weird "Not a directory" message when trying to change
the times of a non-directory file.

Since futimes(fd, times) is equivalent to the newly fixed
futimesat(fd, NULL, times), we also implement the former function (missing
until now) by calling the latter.

Fixes #425 (Lyor, please confirm).

This patch also adds tests for this case.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>