Replace non-threadsafe strerror gmtime setlocale

- Log the name of the error as well as the error code if a network problem
happens. This makes network troubleshooting more convenient
    - Use thread-safe strerror_r and the WIN32 equivalent FormatMessage.
- Replace non-threadsafe gmtime and setlocale
  - Make DateTimeStrFormat use boost::posix_time
  - Also re-enable the util_DateTimeStrFormat tests, as they are no
longer platform specific