hid_write[_timeout]: add _timeout versions of hid_write

* linux: Use poll(2) to see if we can write before we actually write(2).  Also add loop in hid_write() to make it infinite in case of timeout (per #190).
* libusb: Pass the milliseconds value to libusb_*_transfer() functions (adjusting for -1/0 differences).
* windows: Currently returns -1.  Needs to be written (by someone other than me).
* mac: Currently returns -1.  Needs to be written (by someone other than me).