Move request pipe setup into separate function
Refactor the non-portable parts of Butler thread into new functions
Add wrapping class for glib atomic counter
Add PBD::GlibSemaphore class that uses PBD::atomic_counter etc.

PBD::Semaphore can really be used instead of this class now,
but it didn't exist when I needed this class and it is header only, which
causes some problems because windows.h is included
Use PBD::GlibSemaphore in Butler to signal requests on windows
remove direct of realpath(2), replace with canonical_path() which is a no-op on windows
Use PBD::pthread_name in debug output
Add ::localtime_r implementation for mingw