coap_io_process_with_fds() can lock up a mutex for a long time for
stack constrained systems.
If 2 threads (in embedded system) provide client and server functionality
using separate coap_context_t, then there will be random delays on the other
thread while the first is waiting having called coap_io_process() or
coap_io_process_with_fds().
No thread should lock up a mutex for a long time. Moved the (mutex protected)
variables into coap_context_t so there is no need to use a mutex.