Initial working version of hotplug for Windows

Big changes:
* Moving windows_device_priv_init and windows_device_priv_release to
  windows_usb.c to allow debugging of this calls.
* Don't start hotplut thread until timer thread is ready, don't stop until
  timer thread has stopped as well.
* Don't assume htab_create will success.
* poll devices on windows_init call.
* remove windows_device_priv parent_dev field as it's all ready provided by
  libusb_device structure.
* Make message handle a global variable, this allows to call
  UnregisterDeviceNotification on windows_exit
* when doing setting parent_dev of a device increment reference count by one

Small Fixes:
* windows_common safe_free shouldn't cast pointer to void pointer as it
  would allow non pointers variable from been freed even though they haven't
  been allocated, making the compiler not throwing warnings or errors.
* make config.h include relative and not absolute.
* some more debugging features on certain functions.

TODO:
* For some reason Dr. Memory 1.5.1 is reporting unitialized read when calling
  RegisterDeviceNotificationA.
* There's a memory leak when running listdevs this is because some nodes are
  left hanging, rewrite the way devices are listed to improve it.