web: make 'log_access' robust to when host is None

Sometimes we get these error:

(process:28298): libsoup-WARNING **: soup-socket.c:1361: could not get remote address: Bad file descriptor
(process:28298): libsoup-CRITICAL **: soup_address_get_physical: assertion `SOUP_IS_ADDRESS (addr)' failed

When this happens the 'host' parameter passed to the
'WebServer.log_access' method will be None.
database: speed up commit building the tree manually
database: fix unit tests
database: fix first commit
database: fix git_rm, use pygit2's Index.remove
database: avoid empty trees
database: be robust to empty folders in the filesystem

When a handler is removed leaving an empty folder, we don't remove
the empty folder from the filesystem, but we do from the Git tree.

If then we remove the empty folder in a different transaction, then we
will attempt to remove the empty tree from the parent tree too, and that
will fail since it is not there.
database: remove verification on new commit code