Sanitised fd->empty_container so it is initialised only in one place.
This also fixes a samtools issue:

https://github.com/samtools/samtools/issues/146


git-svn-id: svn://svn.code.sf.net/p/staden/code/io_lib@3659 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1
Modified the thread pool to use as few threads as possible. The
intention is that when given, say, 16 threads but being I/O bound such
that 12 cores is enough to keep up with the I/O then we have 12
threads kept busy and 4 totally idle.

This is implemented by dispatching jobs on lower thread IDs in
preference and maintaining a queue of pending jobs in proportion to
the number of threads currently running, rather than instantly
dispatching.


git-svn-id: svn://svn.code.sf.net/p/staden/code/io_lib@3660 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1