iomux_run_timeouts() can be run after the mutex has been released
refuse to add a filedescriptor to the mux if it's bigger than 'maxconnections'
s/maxconnections/iomux->maxconnections/
deduct the max number of connections using getrlimit

instead of requiring to provide it at construction time
use memcpy() instead of memmove() if data doesn't overlap
use a bintree to store the managed filedescriptors

to avoid iterating over a big array with many holes
hence reducing complexity from O(maxfd-minfd) to O(managed_fds)

At the moment only the kqueue implementation makes use of it and also
some benchemarking and stress-tests are still necesary before merging
to master
use rlim_cur instead of rlim_max

(it seems rlim_max is unreliable on some systems and anyway
 as a userspace program, not trying to raise the limit, we should
 honor the soft limit and not the hard one)