Added LOG_ERROR.

The main advantage, other than saving a little typing at each use, is
that it includes an fflush() consistently, which can be helpful when
dealing with timing issues, and debugging in general.
Moved the signalling of concurrencyLimiter from the "logical done" to actual-file-descriptor-closed.

This prevents us opening file descriptors faster than we close them to
the point that we run out.

A cleaner solution would be to dispatch_io_close() first, to ensure the
file descriptor is actually gone.  That has an unfortunate side-effect,
however, of triggering a libdispatch bug.  A comment was added to the
code noting this, for posterity.