be safe and avoid tricks to facilitate bogus caller's implementations

if the caller dead-locks because of the way it tries to access the mux from
multiple threads while holding its own locks (which end up interfering with
the iomux internal lock) it means it has a broken logic and can't
expect the iomux to allow preventing such conditions.

The rules here are :
- iomux_run() should be always called from a single thread (or anyway serialized)
- any call to the iomux api will be threadsafe and, if called while another thread
  is inside iomux_run(), they will all block until iomux_run() is finished
  (obviously the lock is released during the select()/kqueue()/epoll() calls
   and reacquired just after)
- thread safety in iomux must be explicitly enabled at run time on the specifi
  instance required to be thread safe

TODO : add these notes to the documentation